【问题标题】:How to read portions of text from a .txt file in Java?如何从 Java 中的 .txt 文件中读取部分文本?
【发布时间】:2013-07-17 19:37:58
【问题描述】:

我想知道,有没有办法只读取 .txt 文件中字符串的一部分?例如,如果“1,5,10,20”在我的 .txt 文件中,我可以告诉 Java 将“1”保存到某个 int,然后将“5”保存到不同的 int,等等?我希望我说得够清楚!

谢谢大家!

PS 我知道如何使用 BufferedReader 在 Java 中读取 .txt 文件中的整行文本,但不知道如何仅读取其中的某些部分。

【问题讨论】:

  • 看看Scanner类。
  • 你能说得更具体点吗?
  • Scanner 类提供了一个nextInt 方法,用于将下一个标记读取为整数。

标签: java text-files bufferedreader


【解决方案1】:

您可以使用Scanner 类,它提供了一个Scanner#nextInt() 方法来读取下一个标记为int。现在,由于你的整数是 comma(,) 分隔的,你需要在你的 Scanner 中设置 comma(,) 作为分隔符,它使用@987654329 @ 字符作为默认分隔符。为此,您需要使用Scanner#useDelimiter(String) 方法。

您可以使用以下代码:

Scanner scanner = new Scanner(new File("demo.txt"));
scanner.useDelimiter(",");

while (scanner.hasNextInt()) {
    System.out.println(scanner.nextInt());
}

【讨论】:

  • 非常感谢,它成功了!我肯定会更频繁地出现在这个网站上!
  • @Geforce132。不客气 :) 除了在这个网站上,还要爱上这些文档。他们几乎总能回答您的问题。
【解决方案2】:

Scanner 类具有一组 hasNextXyz()nextXyz() 方法,可用于选择和转换由某些分隔符分隔的值。

String lineOfInts = "1,5,10,15,20";
Scanner scanner = new Scanner(lineOfInts).useDelimiter(",");

while (scanner.hasNextInt()) {
    System.out.println(scanner.nextInt());
}

请参阅Scanner#nextInt() 了解更多信息。

【讨论】:

  • 谢谢,这真的很清楚。最后一件事,我会在“new Scanner()”参数中添加什么让它从文件中读取文本,而不是字符串?
  • 因为,您正在使用缓冲读取器读取文件,将从 readLine() 获得的行传递到扫描仪。你的文件格式是什么样的?如果所有数字都在一行上,您也可以使用 Scanner(File source) 构造函数将您的文件提供给扫描仪。
  • 哦,没关系,其他人已经为我回答了。不过还是谢谢:)!
猜你喜欢
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 2012-12-17
  • 2014-06-05
  • 1970-01-01
  • 2015-05-03
相关资源
最近更新 更多