IO
IO就是是 input 和 output 了,Java中的IO主要有两个类型,字节流和字符流。
InputStream / OutputStream / Reader / Writer
这4个类就是java中所有IO流类的基类了, InputStream 和 Reader 负责从内存(eg: 硬盘)中读取数据, OutputStream 和 Writer 负责把数据输出到内存(eg: 硬盘,网络)。 此处主要注意,所有的操作主体是以**计算机的物理内存为第一视觉(JVM)**的。
常用的
InputStream | OutputStream | Reader | Writer |
---|---|---|---|
InputStreamReader | OutputStreamWriter | ||
FileInputStream | FileOutputStream | FileReader | FileWriter |
PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
ObjectInputStream | ObjectOutputStream | ||
StringReader | StringReader |
File***
主要用来对文件进行操作,通常如果文件是个文本文件,那么就由FileReader / FileWriter 来进行读写。 如果是非文本文件,比如图片/程序等,由 FileInputStream / FileOutputStream 来进行读写。
Buffered***
这几个类可以一次对流经行部分读写,而不是一个字节/字符的读写,从来减少读写次数,加快读写速度。
Piped***
java中的管道流,可以对同一个进程的一段数据同时进行读写。