1.io流的分类:按数据流的方向不同分为输入流和输出流
按处理数据单位分为:字节流和字符流
按实现功能分为:节点流和处理流,节点流在输入输出时都是直接与数据源相连,直接使用节点流输入不方便,所以有了处理流,处理流在节点流的基础上会在套接一层,套接在节点流上的就是处理流。
2.简单介绍一些类:对文件进行操作:FileInputStream,
FileOutputStream,FileReader,FileWriter;这些都是节点流
对管道进行操作:PipedInputStream,PipedOutStream,
PipedReader,PipedWriter,管道操作input要和output共同使用, 主要用于线程操作;
字节/字符数组ByteArrayInputStream,ByteArrayOutputStream,
CharArrayReader,CharArrayWriter是在内存中开辟了一个字节 或字符数组。
Buffered缓冲流:BufferedInputStream,BufferedOutputStream,
BufferedReader,BufferedWriter是带缓冲区的处理流,缓冲区 的作用:加快效率,避免总和硬盘打交道;这都是处理流,后两者常用来对InputStreamReader和OutputStreamReader进行处理。
转化流:InputStreamReader,OutputStreamReader,字节转化成字符
转化流:DataInputStream,DataOutputStream,可以直接输出float和long型数据,提高数据传输效率。这都是处理流,常以InputStream和OutputStream作为他们的输入或输出。
打印流:PrintStream,PrintWriter,打印到控制台
对象流:ObjectInputStream,ObjectOutputStream,把封装的对象直接输出,而不是一个一个字节或字符输出。
---------------这些博客都是我之前在学习过程中自书中摘出的重点,以及一些前辈总结的经验,外加一些自己的感悟,如果有前辈看到,有不对的地方希望大家指出,非常感谢。