一、InputStream & outputStream
Java字节流主要是以InputStream (输入流),outputStream(输出流)为基类,本身是抽象类不能创建实例,但是是字节流的基类,所以方法都可以使用,主要的方法有
InputStream:
1 int read();读取单个字节
2 int read(byte[] b); 最多读取b.length 字节存储在字节数组b中,返回读取的字节长度
3 int read(byte[] b, int start, int len);最多读取len字节,存放在数组b中,从b数组的第start位置开始存放
OutputStream:
1 void write(int c)
2 void write(byte[] b) 将b字节数组传入输出流中
3 void wirte(byte[] b, int start, int len); 将b字节数组中从start开始的len位输出到输出流
二、Reader & Writer
Java字符流主要是以Reader(输入流) & Writer(输出流)为基类,本身为抽象类,主要提供的方法有:
Reader:
1 int read();读取单个字节
2 int read(char[] b); 最多读取b.length 字节存储在字节数组b中,返回读取的字节长度
3 int read(char[] b, int start, int len);最多读取len字节,存放在数组b中,从b数组的第start位置开始存放
Writer:
1 void write(int c)
2 void write(char[] b) 将b字节数组传入输出流中
3 void wirte(char[] b, int start, int len); 将b字节数组中从start开始的len位输出到输出流
ps.所有的输入流输出流需要关闭,尤其是字符流,因为字符流是在关闭的时候会将存在缓存中的数据输出/输入。
三、文件流
Java 文件的操作主要有FileInputStream,FileOutStream,FileReader,FileWriter,其中使用如下
1 package JavaLearning.JavaIO;
2
3 import java.io.*;
4
5 /**
6 * Created by ZLei on 2017/9/8.
7 */
8 public class BaseStreamReaderTest {
9 public static void main(String[] args) throws IOException{
10 byte[] bytes = {'1','2'};
11 byte[] readBytes = new byte[1024];
12 // 文件字节输出流
13 FileOutputStream fout = new FileOutputStream("fileOutputStream.txt");
14 fout.write(bytes);
15 // 关闭流时,将文件中的缓存输出到文件中。
16 fout.close();
17
18 // 文件字节输入流
19 FileInputStream fis = new FileInputStream("fileOutputStream.txt");
20 int hasRead = fis.read(readBytes);
21 System.out.println(new String(readBytes,0,hasRead));
22 fis.close();
23
24 char[] charArr = {'张','z'};
25 char[] readArr = new char[127];
26 // 文件字符输出流
27 FileWriter fw = new FileWriter("fileWriter.txt");
28 fw.write(charArr);
29 fw.close();
30
31 // 文件字符输入流
32 FileReader fr = new FileReader("fileWriter.txt");
33 int len = fr.read(readArr);
34 fr.close();
35 System.out.println(new String(readArr,0,len));
36
37 }
38 }