用java从磁盘读取文件

用java从磁盘读取文件,java,Java,我接受了一次采访,他们让我写一个java代码从磁盘读取一个文件。我知道我可以同时使用FileInputStream和BufferedReaders。 但最合适的是什么?原因是什么?当我们从磁盘读取数据时,有什么特别的地方吗?文档中陈述了以下一个用例: FileInputStream用于读取原始字节流,例如 图像数据。为了阅读字符流,请考虑使用 文件阅读器 因此,对读者来说,情况正好相反 FileInputStream正在通过byte读取byte,而正在通过char读取char 所以,如果你正在读

我接受了一次采访,他们让我写一个java代码从磁盘读取一个文件。我知道我可以同时使用
FileInputStream
BufferedReaders

但最合适的是什么?原因是什么?当我们从磁盘读取数据时,有什么特别的地方吗?

文档中陈述了以下一个用例:

FileInputStream用于读取原始字节流,例如 图像数据。为了阅读字符流,请考虑使用 文件阅读器

因此,对读者来说,情况正好相反

FileInputStream
正在通过
byte
读取
byte
,而正在通过
char
读取
char

所以,如果你正在读一些带有字符的东西,请使用阅读器。如果您正在读取二进制数据,请使用流。

使用流是读取文件的好选择。可以使用、或对象构造扫描仪对象。此外,扫描仪还为您提供了几个内置函数,这些函数可以直接从源代码中读取大多数基本类型

以下是使用扫描仪从文件中读取长值的示例代码:

Scanner sc = new Scanner(new File("myNumbers.txt"));
   while (sc.hasNextLong()) {
      long aLong = sc.nextLong();
   }
此处的讨论可能对您有所帮助:


我还发现这个资源对我的研究很有帮助:

不幸的是,这与这个问题没有任何关系:/你为什么认为它没有关系?我想提出一种替代流和阅读器的方法。Scanner类是在读取文件时非常简单和有用的方法。事实上,当我第一次接触到Scanner类时,我再次回答了一个几乎不讨论输入流的问题。所以,我不认为这和主题无关。