Java中IO流总结

1、IO流由四个抽象类扩展而来

1)InputStream 抽象的字节输入流(读取)

2)OutputStream抽象的字节输出流(输出)

3)Reader 抽象的字符输入流

4)Writer 抽象的字符输出流

不用缓冲区

一般使用int read() 和 void write(int x);

使用缓冲区:

字节型使用byte[] bs = new byte[2048];

一般使用int read(byte[] bs)  和 void  write(bs,int start,int length)

字符型使用char[] ch  = new char[2048];

一般使用int read(char[] ch)  和 void write(ch,int start,int length)


String readLine()   和  void write(String str)

2、针对文件操作的类(节点流:直接对数据进行操作)

1)FileInputStream 文件的字节输入流(从文件中读取数据)

2)File Output Stream 文件的字节输出流(像文件中写数据)

3)FileReader 文件的字符输入流

4)File Writer  文件的字符输出流

3、缓冲流:(处理流:需要套接到节点流上)

1)BufferedInputStream 缓冲的字节输入流

2)BufferedOutputStream缓冲的字节输出流

3)BufferedReader 缓冲的字符输入流

4)BufferedWriter  缓冲的字符输出流

4、数据流(针对数据类型进行操作 处理流)

1)DataInputStream 数据的字节输入流

2)DateOutputStream 数据的字节输入流

5、对象流:(处理流)

1)ObjectInputStream  对象的字节输入流

2)ObjectOutputStream  对象的字节输出流

注意:输出对象,自定义对象时 该对象一定要实现对象的序列化接口:java.io.Serializable  才能进行之后的操作

6、转换流

1)InputStreamReader  字节转化为字符的一个以字符的形式实现输入的输入流类

2)OutputStreamWriter  字符转化为字节的一个以字节的形式实现输出的输出流类

 在创建转换流时,可以指定字符编码集

代码:InputStreamReader isr = new InputStreamReader(new FileInputStream(),"UTF-8");

OutputStreamWriter osw = new OutputStreamWriter(new FileInputStream(),"UTF-8");

文件以什么形式存的 就要以什么形式读取

7、打印流(节点流)具有字节流和字符流转换的功能

1)PrintStream  字节打印流类

2)PrintWriter  字符打印流

System系统类

out

in

err

属于PrintStream 

定义的System.out.print() 是输出到控制行。

可以修改out的值

PrintStream old = System.out;

PrintStream  ps = new PrintStream(path);

System.setOut(ps);//修改System类的out静态变量的值    

System.out.println("会将这一句内容输出到文件中"); 

System.setOut(old);//将静态变量out的值修改过来  

System.out.println("会将这一句内容输出到控制台中");

你可能感兴趣的:(io流,java)