IO流总结
输入==读取
输出==写出
都要关流----->close();
普通流
字节流(以字节为单位)
字节输入流
对象----->FileInputStream(路径)
输入----->read(); 返回有效个数且没有值时返回-1
字节输出流
父类----->OutputStream
对象----->FileOutputStream(路径)
输出----->write(); 返回有效个数且没有值时返回-1
刷新----->flush(); 做了close中的一个内容
字符流(以字符为单位,专门读取和写入文本数据的流)
字符输入流
父类----->Reader
对象----->FileReader(路径)
输入----->read(); 返回有效数且没有数时返回-1
字符输出流
父类----->Writer
对象----->FileWriter(路径)
输出----->write(); 返回有效个数且没有值时返回-1
刷新----->flush(); 做了close中的一个内容
缓冲流/高效流/装甲流(提高IO的效率和速度)
缓冲字节流(自带1024*8的字节数组)
字节输入流
对象----->BufferedInputStream(new FileInputStream(路径))
输入----->read(); 返回有效个数且没有值时返回-1
字节输出流
对象----->BufferedOutputStream(new FileOutputStream(路径))
输出----->write(); 返回有效个数且没有值时返回-1
刷新----->flush(); 做了close中的一个内容
缓冲字符流
字符输入流
对象----->BufferedReader(new FileReader(路径))
输入----->read(); 返回有效数且没有数时返回-1
字符输出流
对象----->BufferedWriter(new FileWriter(路径))
输出----->write(); 返回有效个数且没有值时返回-1
刷新----->flush(); 做了close中的一个内容
特殊方法
读一行文本----->readLine(); 返回String且没值返回null
跨平台回车----->newLine(); 没有返回值
注意
这里可以用装甲流扩展加速下
转换流(中间可以是文本存储/读写一起执行)
将文件中的字节转为字符
对象----->InputStreamReader(new FileInputStream(路径,编码))
输入----->read(); 返回有效数且没有数时返回-1
将文件中的字符转化为字节
对象----->OutputStreamWriter(new FileOutputStream(路径,编码))
输出----->write(); 返回有效个数且没有值时返回-1
刷新----->flush(); 做了close中的一个内容
特殊方法
读一行文本----->readLine(); 返回String且没值返回null
跨平台回车----->newLine(); 没有返回值
序列化流
反序列化字节输入流
对象----->ObjectInputStream(new FileInputStream(文件路径))
输入----->readObject(); 不需要返回值
序列化字节输出流
对象----->ObjectOutputStream(new FileOutputStream(文件路径))
输出----->writeObject(); 不需要返回值
刷新----->flush(); 做了close中的一个内容
打印流
作用不大
对象----->PrintStream(文件路径)
特有方法
改变打印流的指向----->System.setOut(对象名)
加载流
加载配置文件
配合Properties双列集合,加载配置文件
需要InputStream,所以主要用文件字节子类流FileInputStream
Properties.Load(new FileInputStream(文件路径))