字节流

|-InputStream
    |-FileInputStream,文件字节输入流;属于节点流
    |-ByteArrayInputStream,字节数组输入流;属于节点流
    |-ObjectInputStream,读取对象,即反序列化;属于包装流
|-OutputStream
    |-FileOutputStream,文件字节输出流;属于节点流
    |-ByteArrayOutputStream,字节数组输出流;属于节点流
    |-ObjectOutputStream,写入对象,即序列化;属于包装流

 

字符流

|-Reader
    |-FileReader,文件字符输入流;属于节点流
    |-BufferedReader,缓冲字符输入流;属于包装流
    |-InputStreamReader,将字节输入流转换为字符输入流;属于转换流
|-Writer
    |-FileWriter,文件字符输出流;属于节点流
    |-BufferedWriter(缓冲字符输出流;属于包装流) / PrintWriter(打印流,功能更强操作简单;属于包装流)
    |-OutputStreamWriter,将字节输出流转换字符输出流;属于转换流

  

总结:
字节流:
  1、可以读、写自定义大小的字节数组;byte[] buffer = new byte[1024 * 1024 * 10]; // 每次读取10M;
  2、【推荐】如果是操作非二进制文件,可以通过转换流转换为字符流,然后用缓冲字符输入输出流(字符流无法读写二进制文件);
  3、如果操作二进制文件,用对象字节输入输出流;
 
文件字符流:
  1、可以读、写自定义大小的字符数组,char[] buffer = new char[50]; // 每次读取50个字符;
  2、【推荐】但是,最好用缓冲字符输入输出流,可以按行读、写,另外,输出都用PrintWriter
 
能用缓冲字符流的用缓冲字符流,输出都用PrintWriter。
 
 
 
示例

相关文章:

  • 2020-06-01
  • 2021-06-21
猜你喜欢
  • 2021-06-21
  • 2021-09-03
  • 2021-11-13
  • 2021-09-12
  • 2021-12-19
  • 2022-01-07
  • 2021-08-11
相关资源
相似解决方案