【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 }