Linux2016
骄傲的柠檬精
采纳率33.3%
2016-10-04 16:54 阅读 1.1k
已采纳

既然文件都是字节序列 那么为什么java还要提供那么多种类的字节流?

5

最近在看深入理解计算机系统,本书说到:计算机文件,不过就是m个字节序列。读写文件的时候,就是将字节序列从存储器其中取出来或者写入到文件(也就是这个序列中)。既然这样,为什么java还要提供那么多的字节流:FileInputStream,FileOutputStream,DataInputStream和DataOutputStream什么的,还有很多,要这些干嘛?一个字节流不就搞定了?

请懂得底层实现的大神说一下,或者从对字节流的封装角度说一下,不要单纯的概念粘贴,谢谢。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    Ro_bot 「已注销」 2016-10-04 17:33

    你先弄懂什么是编码。最好去了解下ASCII、UNICODE以及UTF-8这三种

    点赞 1 评论 复制链接分享
  • Runner__1 T_world 2016-10-05 03:52

    这样处理关键在于解决不同编码的问题,比如中文字符采用unicode编码,一个中文字符占用两个字节,如果这个时候用字节流来输入的话,默认一个字节一个字节地识别,那么中文字符就全部变成乱码了,因此只能使用字符流输入

    点赞 2 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-10-04 18:06

    底层的实现机制不同啊,文件流底层是文件的读写,网络流是网络数据的接收,压缩流底层是压缩解压缩算法。

    点赞 1 评论 复制链接分享
  • wlz766107 辛幻柏 2016-10-05 04:00

    多种类型的字节流,主要是为了更好,更快的读写。比如最明显的是BufferedInputStream,是对InputStream的封装加强。对于它的存在意义,比如说你去喝一杯水,你是一滴一滴的喝,还是盛到一杯水再喝?

    点赞 1 评论 复制链接分享

相关推荐