【Java】JavaIO(二)、节点流

一、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 }
原文地址:https://www.cnblogs.com/zleiblogs/p/7496486.html