哈哈哈123457
2017-02-28 05:23
采纳率: 100%
浏览 941
已采纳

IO流操作的问题 请大神帮忙

在把 new FileInputStream(f)转换成字符流时,用InputStreamReader 还是 fileReader好,为什么?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 白萝卜blb 2017-02-28 05:40
    已采纳

    FileReader继承自InputStreamReader,如果你的读写操作很少频率很低,是没多大区别的。

    打赏 评论
  • 白萝卜blb 2017-03-01 05:37

    /**

    • Convenience class for reading character files. The constructors of this
    • class assume that the default character encoding and the default byte-buffer
    • size are appropriate. To specify these values yourself, construct an
    • InputStreamReader on a FileInputStream. *
    • FileReader is meant for reading streams of characters.

    • For reading streams of raw bytes, consider using a
    • FileInputStream. *
    • @see InputStreamReader
    • @see FileInputStream *
    • @author Mark Reinhold
    • @since JDK1.1 / 这是FileReader的说明; /*
    • An InputStreamReader is a bridge from byte streams to character streams: It
    • reads bytes and decodes them into characters using a specified {@link
    • java.nio.charset.Charset charset}. The charset that it uses
    • may be specified by name or may be given explicitly, or the platform's
    • default charset may be accepted. *
    • Each invocation of one of an InputStreamReader's read() methods may

    • cause one or more bytes to be read from the underlying byte-input stream.
    • To enable the efficient conversion of bytes to characters, more bytes may
    • be read ahead from the underlying stream than are necessary to satisfy the
    • current read operation. *
    • For top efficiency, consider wrapping an InputStreamReader within a

    • BufferedReader. For example: *
    • BufferedReader in
    • = new BufferedReader(new InputStreamReader(System.in));
    • *
    • @see BufferedReader
    • @see InputStream
    • @see java.nio.charset.Charset *
    • @author Mark Reinhold
    • @since JDK1.1
      */
      这是InputStreamReader的说明。

      大致意思就是说:FileReader是读文件用的,你每次读取时,都是字节字节读的,这样用InputStreanReader会比较慢,建议使用FileReader,如果想用InputStreamReader,最好在外层加一个缓冲区,比如BufferedReader。

    打赏 评论

相关推荐 更多相似问题