0

我有一个小文件 test.txt 里面包含一个 Long 数字,而另一段 java 代码不断地从文件中读取 Long 。

以下是步骤:

echo "123" > test.txt

然后如果你去 test.txt 文件,vim test.txt -> :set list,你会看到文件看起来像:

123$

我有一段java代码执行以下操作:

byte[] testBytes = File.readAllBytes(test.txt);  
String testString = new String(testBytes);  // in debug mode, testString looks like "123\n"
long bytesEverRead = Long.parseLong(testString);  // this line throws exception because parseLong("123\n") won't work

正如您在上面看到的,正在从文件中读取“123\n”,这导致我的 parseLong 失败。如何在没有 \n 的情况下从 test.txt 中读取 123 。处理这个问题的最佳方法是什么?

4

2 回答 2

3

您可以使用java.util.Scanner(在 Java 5 中引入)。

Javadoc 页面上有几个示例,但在您的情况下,它会很简单:

Scanner sc = new Scanner(new File("test.txt"));
long bytesEverRead = sc.nextLong();
于 2012-06-28T13:08:10.607 回答
1

你可以使用

String testString = new String(testBytes).trim();
long bytesEverRead = Long.parseLong(testString);
于 2012-06-28T13:06:19.513 回答