javaI/O流


IO的使用 -> 数据传输

内存 -> 硬盘 , Socket编程


字节流

输入字节流

  • InputStream 所有输出字节流的基类, 抽象类
    • FileInputStream 读取文件输入字节流
    • BufferedInputStream 具有缓存功能的输入字节流 ,底层维护了一个8kb字节数组,提高读取文件数据的效率
      private static int DEFAULT_BUFFER_SIZE = 8192;
    public static void main(String[] args) throws Exception {
        BufferedInputStream bis = new BufferedInputStream(System.in);
        int len = bis.read();
        System.out.println(len);
    }

Console

aaa
97


输出字节流

  • OutputStream 所有输出字节流的基类,抽象类
    • FileOutputStream 向文件输出数据的字节流
    • BufferedOutputStream 具有缓存功能的输出字节流 ,底层维护了一个8kb字节数组,提高读取文件数据的效率

使用场景: 图片,视频,音频 ... (不需要解码的使用字节流)


字符流 = 字节流 + 解码

输入字符流


  • Reader 所有输入字符流的基类,抽象类
    • FileReader 读取文件字符的输入字符流,默认使用GBK字符集
    • BufferedReader 缓冲输入字符流 ,提高读取文件字符的效率,8kb长度的byte数组

比字节流多 readLine() 功能


输出字符流

  • Writer 所有输出字符流的基类,抽象类
    • FileWriter 读取文件字符的输出字符流 ,默认使用GBK字符集
    • BufferedWrite 缓冲输出字符流 ,提高写入文件字符的效率,8kb长度的byte数组

比字节流多 newLine() 功能 使用场景: 读写的都是字符数据


转换流

输入字节流的转换流


  • InputStreamReader

输出字节流的转换流

  • OutputStreamWriter

作用:
1.可以把对应的字节流转换成字符流。
2.可以指定编码表读写文件数据


给个github follow me的链接,上面有很多初学者可供学习的资料,项目.

https://github.com/SuperZee

你可能感兴趣的:(javaI/O流)