字符流总结:
流对象:
FileReader
FileWriter
方法:
Read() 两种读取数据的方法
Write();flush();close();
文件续写FileWriter fw = new FileWriter("demo.txt",true)
缓冲区
setLineNumberReader, getLineNumberReader
BufferedReader
readLine(); LineNumberReader()
BufferedWriter
newLine()
字节流总结
流对象
FileInputStreamReader
FileOutputStreamWriter
方法
三种读取数据的方法
Read();Write();flush();close();
缓冲区
BufferedInputStreamReader
BufferedOutputStreamWriter
转换流总结:
流方法
InputStreamReader()
OutputStreamWriter()
方法
三种读取数据的方法
Read();Write();flush();close();
缓冲区
BufferedReader
BufferedWriter
键盘输入输出流:
键盘输入流:InputStream in = System.in;
键盘输出流:OutputStream out = System.out
System.out:对应的是标准输出设备:控制台。 OutputStream
System.in: 对应的标准输入设备:键盘。 InputStream
关系:转化流属于字符流。因为转化流是字符流的父类,而字符流底层调用的是字节流。当使用字符流的时候,字符流调用字节流的缓冲区缓冲数据,利用转化流的功能按照缓冲区中的字节数据去查找相应的编码表将字节转换成字符。所以可以用转换流指定访问相应的编码表。默认情况下的字符流访问GBK编码表 。
指定编码表代码示例:
OutputStreamWriter osw =
new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8");
流操作的基本规律:流对象有很多,到底应该用哪一个需要通过三个明确来完成。
1,明确源和目的。
源: 输入流:InputStream(键盘) 和Reader
目的:输出流:OutputStream(控制台) 和Writer。
2,操作的数据是否是纯文本。
是: 字符流: Writer 和Reader
不是:字节流: OutputStream和InputStream
3,当体系明确后,再明确要使用哪个具体的对象。
通过设备来进行区分:
源设备: 键盘 System.in, 硬盘FileStream, 内存 ArrayStream。
目的设备:控制台 System.out,硬盘FileStream, 内存 ArrayStream。
4、流对象
字符流对象:FileReader, FileWriter
字节流对象;FileInputStream,FileOutputStream
5、是否需要缓冲区
字符缓冲区:BufferedWriter, BufferedReader
字节缓冲区:BufferedOutputStream, BufferedInputStream
|
|