按数据类型处理数据
字节流: “FileInputStream” , “FileOutputStream”
字符流: “FileReader” , “FileWriter”
字节流:“ByteArrayInputStream” , “ByteArrayOutputStream”
字符流:“CharArrayReader” , “CharArrayWriter”
字节流: “StringBufferInputStream” , “StringBufferOuputStream”
字符流: “StringReader” , “StringWriter”
字节流: “InputStream” , “OutputStream”
字符流: “Reader” , “Writer”
按是否格式化处理数据
“PrintStream” , "PrintWriter "
按是否缓冲处理数据
字节流: “BufferedInputStream” , “BufferedOutputStream”
字符流: “BufferedReader” , “BufferedWriter”
按数据格式处理数据
InputStream, OutputStream 及其所有带 Stream 结束的子类
Reader, Writer 及其所有带 Reader, Writer 的子类
按输入输出分处理数据
Reader, InputStream 类型的子类
Writer, OutputStream 类型的子类
决定使用哪个类以及它的构造进程的一般准则如下:
- 考虑最原始的数据格式是什么;
- 是输入还是输出;
- 是否需要转换流;
- 数据来源是什么;
- 是否要缓冲;
- 是否要格式化输出;