一.按照功能:节点流和过滤流(过滤流是对节点流的包装如:DataInputStream/DataOutputStream BufferedInputStream/BufferedOutputStream BufferedReader/BufferedWriter InputStreamReader/OutputStreamWriter(字节流转换为字符流))
二.按照读写数据的类型:字符流(Reader和Writer)和字节流(InputStream和OutputStream)。
三.节点流按照数据源分为:
1.FileOutputStream/FileWriter、FileInputStream/FileReader(文件)
2.ByteArrayInputStream/ByteArrayOutputStream(缓冲区和临时文件、内存映射文件)
CharArrayReader/CharArrayWriter StringReader/StringWriter
3.PipedInputStream/PipedOutputStream(线程之间的通信)PipedReader/PipedWriter
4.ObjectInputStream/ObjectOutputStream(对象存.取)
今天上午大致看了一下Java IO方面的API。IO方面的API有很多很多,大致对其进行了分类如上述所总结的。
对于流的使用要精确把握要不断练习才行。
IO方面的主要问题有:缓冲区、字符集编码、流的使用方式(使用完毕后记得关闭流)、多线程同步的问题、流使用的性能把握,据说现在NIO2也已经开发出来,还有NIO也应该好好熟悉才行、同步与异步问题、Memory map这些等等。
网络编程一般也都要与流打交道因此IO操作是非常重要的。