IO流
在Java中,对文件的操作,都是以流的形式进行操作。
- IO流从流的方向上来分: 输入流 / 输出流
- 从文件的构成上: 字节文件(图片、音频、视频) / 字符文件(纯文本文档)
- IO流从操作的文件的构成单元来分: 字节流 / 字符流
- 按流的角色:节点流:可以从一个特定的IO设备读写数据的流 / 处理流(包装流/转换流):对一个已存在的流进行连接和封装,通过封装后的流实现数据的读写操作
IO流又分为
- 字节输入流
- 字节输出流
- 字符输入流
- 字符输出流
IO流的基础
- 字节输入流 InputStream
- 字节输出流 OutPutStream
- 字符输入流 Reader
- 字符输出流 Writer
字节流
字节输入流 inputStream 有一个实现 :fileInptuStream 可以实现将文件数据读入到程序中
用到 read()方法
- public int read() 每次读取一个字节
- public int read(byte[] b) 每次读取byte数组大小的字节
字节输出流 outputSteram -- > fileOutPutStream 写数据
用到 writer()方法
- public void write(int b)
- public void write(byte[] b)
- public void write(byte[] b,int off,int len)
package org.lanqiao.inputstream.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class InputStreamDemo {
public static void main(String[] args) throws IOException {
//建立字节输入流
File file = new File("E:\\JAVA资料\\aa.jpg");
InputStream is = new FileInputStream(file);
//建立字节输出流
OutputStream os = new FileOutputStream(new File("e:\\JAVA资料\\abcde.jpg"));
/* int b = is.read();//每次读取一个字节。
System.out.println(b);
int b1 = is.read();//每次读取一个字节。 当read的返回值为-1时,代表文件读完了
System.out.println(b1);*/
int b = 0;
while(b != -1) {
b = is.read();
os.write(b);
}
}
}