IO 面试题

字节流和字符流的主要区别

1.字节流在操作时不会用到缓冲区(内存),是直接对文件本身进行操作的.而字符流在操作时使用到了缓冲区,通过缓冲区再操作文件
2.在硬盘上的所有文件都是以字节形式存在的(图片、声音、视频),而字符只在内存中形成

上面两点能说明什么呢?

  • 针对第一点:
    我们知道,如果一个程序频繁地对一个资源进行IO操作,效率会非常低.此时通过缓冲区,先把需要操作的数据暂时放在内存中,以后直接从内存中读取数据,则可以避免多次IO操作,提高效率
  • 针对第二点:
    真正存储和传输数据时都是以字节为单位的,字符只是存在于内存当中的,字节流使用范围更广

应用场景:
在读写文件需要对文件内容进行处理,比如你叫特定字符,处理某一行数据的时候,一般会选择字符流
只是读写文件,和文件内容无关的,一般选择字节流

你可能感兴趣的:(IO,面试)