I/O流:
流的概念:
输出流
程序----------->文件、网络
程序<-----------数据来源
输入流
流的分类:
按处理方式来分:
字节流:按8位传输
字符符:按16位传输
按功能来分:
节点流:与文件、网络打交道的流,操作数据的来源
处理流:操作节点流
如何区分:
输入流:以InputStream、Reader结尾的流
输出流:以OutputStream、Write结尾的流
字节流:以InputStream、OutputStream结尾的流
字符流:以Reader、Writer结尾的流
节点流:看构造器,参数为数据来源,参数是String或File之类的
处理流:构造器的参数为其它流
所有的以InputStream结尾的流都是InputStream的子类:
BufferedInputStream(处理流)
FileInputStream(文件)
所有的以OutputStream结尾的流都是OutputStream的子类:
BufferedOutputStream, DataOutputStream, FilterOutputStream
选择流时:
首先确定是输入还是输出。
其次确定是字节流还是字符流。
然后确定是节点流还是处理流。
对某文件一次读一行(课堂代码:ReadLine.java)
InputStreamReader是字节转字符的桥梁
所有以Buffered开头的流被称为缓冲流,需要注意的是在关闭BufferedWriter前要先flush一下,因为它有缓冲。
常用的流:File,Buffered,InputStream之类的。
管道流在JAVA中线程交互的时候使用。(课堂代码:InputThread.java,OutputThread.java)
输入管道:PipedInputStream
输出管道:PipedOutputStream
输入管道与输出管道的连接:PipedInputStream(PipedOutputStream src)或PipedOutputStream(PipedInputStream sink)
NIO 新技术 再总结