流
字节流
字符流
字节流转换为字符流的案例
流
流,表示任何有能力产出数据的数据源对象或有能力接收数据的对象。流的本质是数据的传输,根据数据传输的特性可以将流抽象为各种类。
Java中的I/O操作主要指的是java.io包下的内容。
在Java中,输入也叫作读取,输出也叫作写出。
流的作用
为数据和目的地建立一个传输的通道。根据数据的流向,可以将流分为输入流、输出流。输入流指的是把数据从其他设备上(硬盘等)读取到内存中;输出流指的是把数据从内存中写出到其他设备。
流的分类
根据数据的分类,可以分为字节流和字符流。字节流即以字节为单位来读写数据的流;字符流即以字符为单位读写数据的流。
1字符 = 2字节 1字节(byte)= 8位(bit)
字节流
创建方式
//先创建一个File对象,例如
File file = new File("D:\programFiles\test.txt");
//将File对象传入 FileInputStream/FileOutputStream 对象
//输入流
InputStream inputStream = new FileInputStream(file);
//输出流
OutputStream outputStream = new FileOutputStream(file);
读取
//InputStream 类中的read()方法可以帮助我们进行读取的操作
//该方法的返回值是int类型的,若返回-1则表示没有数据可读
//调用该方法需要传入一个字节数组来进行数据的接收
byte[] b = new byte[size];
int length = inputStream.read(b);
while (-1 != length) {
length = inputStream.read(b);
}
写入
//InputStream 类中的write()方法可以帮助我们进行写入的操作 //该方法也需要一个字节数组来进行数据的发送,即把数组中的数据写入目标文件 String str = "zhangsan lisi wangwu"; byte[] b = str.getBytes(); outputStream.write(b);
字符流
创建方式
//创建File对象
File file = new File("D:\test.txt");
//输入流
Reader reader = new FileReader(file);
//输出流,第二个布尔型的参数为是否在文件末尾增加,若传入false或默认则直接覆盖文件内容
Writer writer = new FileWriter(file,true);
读取和写入
//read()方法,需要传入一个字符数组
reader.read(c);
//write()方法,格式: write("测试数据",下标,长度);
writer.write("测试数据",0,2);



