不同角度分类:
1、字节流 字符流
2、输入流 输出流(以程序为参考对象)
3、节点流 处理流
流的运用
J2SDK所提供的所有流类型都位于包java.io内,都分别继承自以下四种抽象流类型。
字节流 | 字符流 | |
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
处理不同对象,选用不同的流,节点流与相应的对象
File(文件):FileReader、FileWriter、FileInputStream、FileOutputStream
Memory Array:CharArrayReader、CharArrayWriter、ByteArrayInputStream、ByteArrayOutputStream
Memory String:StringReader、StringWriter
Pipe:PipedReader、PipedWriter、PipedInputStream、PipedOutputStream
然后再根据需要,在节点流外面套接上合适的处理流。
缓冲流:BufferedInputStream、BufferedOutputStream、BufferedReader(readLine())、BufferedWriter(newLine())
转换流:InputStreamReader、OutputStreamWriter 构造时可以指定编码
数据流:DataInputStream、DataOutputStream
Print流:PrintWriter、PrintStream
Object流:ObjectInputStream、ObjectOutputStream (transient关键字,Serializable接口,Externalizable接口)
分隔符使用
File f = new File("d://book//1"); √
File f = new File("d:/book/1");√
File f = new File("d:\\book\\1");√
File f = new File("d:\book\1"); Χ
注意: \是转义字符,所以\\才相当于\.
总结:推荐大家用"/"或"File.separator"。