【问题标题】:How to Read 1st line of a file with BufferedReader?如何使用 BufferedReader 读取文件的第一行?
【发布时间】:2012-03-14 23:24:15
【问题描述】:

我正在尝试使用 BufferedReader 将第一行文件读取为字符串。我该怎么做呢?另外,如何将整个文件读入字符串?如何在不遍历前几行的情况下读取 readline(int line) 这样的特定行?

File namefile = new File(root, ".name");
FileReader namereader = new FileReader(namefile);
BufferedReader in = new BufferedReader(namereader);

【问题讨论】:

  • stackoverflow.com/questions/7175161/… 看看它是否有帮助它是您希望实现的类似目标
  • 如果(从您的 cmets 到答案)您想知道如何在不读取整个文件的情况下访问文件中的任意行(随机访问),您应该澄清问题的措辞。
  • @dev 抱歉,我会说英语,但由于我没有太多的编程背景,所以我很难准确地说出这个词。感谢您的理解。

标签: java android file-io io


【解决方案1】:

您可以使用BufferedReader.readLine() 获取第一行。

请注意,下一次调用readLine() 将获得第二行,接下来是第三行....

编辑:
如果你想指定一个特定的行,正如你的评论所建议的 - 你可能想使用 Apache Commons FileUtils,并使用:FileUtils.readLines()。它会给你一个List<String>,你可以像处理任何列表一样处理它,包括获取特定的行。请注意,它的开销更大,因为它会读取整个文件,并使用其行填充 List<String>

【讨论】:

  • 是否可以指定特定的行?
  • @BinoyBabu:看看我的编辑,如果你想要一个特定的行 - 你可能想要使用 apache commons - FileUtils
  • @Binoy 您应该编辑您的问题以包含该标准,如果这是您要寻找的。​​span>
  • @amit:你能给我举个例子在文件上写下特定的行吗? - 假设我有 file.txt 三行。行号1。一,数字2。 b,编号 3。 C。然后我想将第 3 行重写为 d。怎么做?谢谢
【解决方案2】:

嗯,BufferedReader.readLine() 怎么了?

读取一行文本。行被视为由换行符 ('\n')、回车符 ('\r') 或回车符后紧跟换行符中的任何一种来终止。

(不过,我没有看到任何 readFile() 方法的迹象 - 你在看什么文档?)

我个人更喜欢使用 FileInputStream 包裹在 InputStreamReader 而不是 FileReader 顺便说一句,否则它将始终使用平台默认编码 - 你确定你想要什么?

【讨论】:

  • 它读取整个文件对吗?我不能指定像 BufferedReader.readLine(1); 这样的行
  • @BinoyBabu:不,它读取一行,如文档所述。查看方法的名称是 readLine,而不是 readFile
  • 由于读取器被缓冲, BufferedReader#readLine 很可能会从底层源读取比第一行更多的内容,即使它只被调用一次。从性能的角度来看,这在大多数情况下可能无关紧要,但在某些情况下,功能差异是相关的。
  • @jarnbjo:是的,很有可能——但这与阅读整个 文件 不同,而这正是 OP 似乎一直关心的问题。
【解决方案3】:
final File namefile = new File(root, ".name");
final FileReader namereader = new FileReader(namefile);
final BufferedReader in = new BufferedReader(namereader);
in.readLine();

【讨论】:

    【解决方案4】:

    如果您使用 BufferedReader 读取文件,则应该有一个名为的方法

    readLine()
    

    只读取一行。

    http://developer.android.com/reference/java/io/BufferedReader.html

    【讨论】:

      【解决方案5】:

      【讨论】:

        猜你喜欢
        • 2020-07-01
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        • 2013-04-12
        • 2023-03-04
        • 1970-01-01
        相关资源
        最近更新 更多