转换流

InputStreamReader 和 OutputStreamWriter
处理流
用于将字节流转化成字符流,字符流与字节流之间的桥梁
InputStreamReader 的作用是把 InputStream 转换成 Reader
OutputStreamWriter 的作用是把 OutputStream 转换成 Writer

存在将字节流转换成字符流的转换流,因为字符流操作文本
更简单
不存在把字符流转换成字节流的转换流,因为没有必要
System.in 代表标准输入,即键盘输入,是 InputStream 的实

 import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException; public class TestInputStreamReader { public static void main(String[] args) {
//任务需求,从键盘获取数据,写入磁盘文件
//(3)提高读取效率
BufferedReader br = null;
//(4)提高写入效率
BufferedWriter bw = null;
try {
//(1)数据源是标准的输入设备,键盘System.in
InputStream is = System.in;
//(2)需要使用转换流,转换成字符流
InputStreamReader isr = new InputStreamReader(is,"gbk");
br = new BufferedReader(isr);
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\systein.txt")));
//(5)写入磁盘文件
String line = null;
while(!"over".equals((line=br.readLine()))) {//键盘输入over表示结束
bw.write(line);
bw.newLine();
bw.flush();
}
} catch (UnsupportedEncodingException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
//(6)关闭
if(bw != null) {
try {
bw.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if(br != null) {
try {
br.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}

控制台输入

------------------------------------------------------------------------------------------------------------------------------------------------------

文本文件

----------------------------------------------------------------------------------------------------------------------------------------

 打印流

PrintStream和PrintWriter

PrintStream
1) PrintStream 提供了一系列的 print()和 println(),可以实现
将基本数据类型格式化成字符串输出。对象类型将先调用
toString(),然后输出该方法返回的字符串
2) System.out 就是 PrintStream 的一个实例,代表显示器
3) System.err 也是 PrintStream 的一个实例,代表显示器
4) PrintStream的输出功能非常强大,通常需要输出文本内容,
都可以将输出流包装成 PrintStream 后进行输出
5) PrintStream 的方法都不抛出 IOException

import java.io.PrintStream;

public class TestPrintStream {
public static void main(String[] args) {
PrintStream ps = System.out;//显示器
//PrintStream ps=System.err;
ps.println(123);
ps.println("哈哈哈");
}
}

PrintWriter
1) PrintStream 的对应字符流,功能相同,方法对应。
2) PrintWriter 的方法也不抛出 IOException
3) 复制文件时可以使用PrintWriter代替BufferedWriter完成,
更简单

 import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Date; public class TestPrintStream {
public static void main(String[] args) throws IOException {
PrintWriter ps = new PrintWriter(new FileOutputStream("D:\\print.txt"));
//无需类型转换,自动转成String类型
ps.println("hello");
ps.println(11);
ps.println(11.12);
ps.println(new Date());
ps.flush();
ps.close(); //只能写入字符串类型
BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\a.txt"));
bw.write("哈哈哈");
//bw.write(234.4);
//bw.write(new Date());
bw.close();
}
}

数据流

DataInputStream 和 DataOutputStream
1) 提供了可以存取所有 Java 基础类型数据(如:int,double
等)和 String 的方法。
2) 处理流,只针对字节流,二进制文件
3) 输入流链和输出流链
4) 注意:只要关闭上层流即可

 import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class TestDateStream { public static void main(String[] args) throws IOException {
//write();
read();
} //读数据的方法
public static void read() throws IOException {
//(1)数据源
FileInputStream fis = new FileInputStream("E:\\data.txt");
//(2)提高读取效率
BufferedInputStream bis = new BufferedInputStream(fis);
//(3)数据流 增加对java基本数据类型和String的处理
DataInputStream dis = new DataInputStream(bis);
//(4)读数据-----读数据的顺序与写数据的顺序一致
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());
System.out.println(dis.readUTF());
System.out.println(dis.readDouble());
//关闭
dis.close();
} public static void write() throws IOException {
/*//(1)目的地
FileOutputStream fos = new FileOutputStream("E:\\data.txt");
//(2)缓冲流提高写入效率
BufferedOutputStream bos = new BufferedOutputStream(fos);
//(3)数据流,增加对java基本数据类型和String的处理
DataOutputStream dos = new DataOutputStream(bos);*/
//三行并作一行
DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("E:\\data.txt")));
//(4)写入数据
dos.writeInt(99);
dos.writeBoolean(true);
dos.writeUTF("qwer");
dos.writeDouble(22.7);
//(5)关闭流
if (dos != null) {
dos.close();
}
}
}

---------------------------------------------------------------------------------------------------------------------

写入的文件------字节 二进制文件 人看不懂 但机器看得懂

--------------------------------------------------------------------------------------------------------------------

读出来的数据

---------------------------------------------------------------------------------------------------------------------------

java 转换流 打印流 数据流的更多相关文章

  1. Java基础教程——打印流

    打印流 打印流可以把原本输出到控制台的信息输出到文件中.PrintStream是字节打印流(还有个对应的字符打印流是PrintWriter,这里不涉及) System类中有个变量: public fi ...

  2. IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO

    内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...

  3. 6.5(java学习笔记)其他流(字节数组流,数据流,对象流,打印流)

    一.字节数组流 之前使用输入输出流的操作的对象是文件,而这里字节数组流操作的对象是内存,内存可以看做是一个字节数组. 使用字节数组流读写就可以看做是从内存A到内存B的读写,对象时内存即字节数组. 1. ...

  4. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  5. java 中的打印流

    package cn.zhou; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.F ...

  6. 系统学习 Java IO (十一)----打印流 PrintStream

    目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基 ...

  7. JAVA笔记12__字节、字符缓冲流/打印流/对象流/

    /** * !!:以后写流的时候一定要加入缓冲!! * 对文件或其它目标频繁的读写操作,效率低,性能差. * 缓冲流:好处是能更高效地读写信息,原理是将数据先缓冲起来,然后一起写入或读取出来. * * ...

  8. Properties-转换流-打印流-序列化和反序列化-Commons-IO工具类

    一.Properties 类(java.util)     概述:Properties 是一个双列集合;Properties 属于map的特殊的孙子类;Properties 类没有泛型,propert ...

  9. 34 io流-- 打印流和对象流

    概述 io流分为字符流和字节流,具体分类相见下图 字符流:char 一些基本文本的数据传输 字节流:byte 图片.视频等用文本查看器查看不了的文件都是二进制文件,只能用字节流传输,使用字符流cp的看 ...

随机推荐

  1. IronPython初体验

    介绍 在 C# 程序中嵌入 IronPython 得到了很好的支持.在本教程中,我们将展示如何完成这个项目. 首先,我们将展示两个非常基本的例子,说明如何执行一个不导入任何模块的非常简单的脚本.然后, ...

  2. SQLite 的 CodeFirst 模式

    目录 问题描述 解决方案 安装依赖包 修改程序配置 App.config 创建模型对象 Person.cs 创建数据上下文 PersonDbContext.cs 主程序调用 Program.cs 注意 ...

  3. vue路由传参的三种基本方式

    现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据. 父组件中: <li v-for="article in articles" @click= ...

  4. react的生命周期需要知道的。

    有关React生命周期: 1.组件生命周期的执行次数是什么样子的??? 只执行一次: constructor.componentWillMount.componentDidMount 执行多次:ren ...

  5. 【读书笔记】iOS-PhoneGap

    以前,用PhoneGap平台创建的应用在提交到AppStore中的时候可能会遇到一些问题,不过PhoneGap 0.8.0版本已经很好地解决了这个问题,而且苹果公司也允许将通过PhoneGap构建的应 ...

  6. React 入门学习笔记整理(一)——搭建环境

    使用create-react-app脚手架搭建环境 1.安装node .软件下载地址:https://nodejs.org/en/,我下的推荐的版本. 安装之后测试是否安装成功.windows系统下, ...

  7. 从输入url到页面展示到底发生了什么

    阅读目录 1.输入地址 2.浏览器查找域名的 IP 地址 3.浏览器向 web 服务器发送一个 HTTP 请求 4.服务器的永久重定向响应 5.浏览器跟踪重定向地址 6.服务器处理请求 7.服务器返回 ...

  8. 华为交换机MSTP+VRRP配置实例说明文档

    华为交换机MSTP+VRRP配置实例说明文档 拓扑图 IP地址规划表 设备名称 设备接口 对端设备 对端接口 VLAN VLAN /接口地址 备注 SW0 GE0/0/23 SW2 GE0/0/23 ...

  9. Python实现批量梯度下降算法

    # -*- coding: UTF-8 -*- import numpy as npimport math # 定义基础变量learning_rate = 0.1n_iterations = 1000 ...

  10. Java获取数据库表 字段 存储的部分数据

    在浏览器页面,选中图片(可多选) >单击删除按钮. 重点是, 本数据库表TabHeBeiTianQi中 存在 同一id,对应的picLocalPath字段  存储了多张图片,图片地址用   逗号 ...