java - 读取一个目标中包含长数字的小文件并使用回车符\n

标签 java io echo java-io

我有一个小文件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 失败。如何从 test.txt 中读取 123 而不使用\n 。处理这个问题的最佳方法是什么?

最佳答案

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

Javadoc 页面上有几个示例,但就您而言,它会很简单:

Scanner sc = new Scanner(new File("test.txt"));
long bytesEverRead = sc.nextLong();

关于java - 读取一个目标中包含长数字的小文件并使用回车符\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245235/

相关文章:

java - 有没有更简洁的方法来使用 try-with-resource 和 PreparedStatement?

process - 如何在不阻塞 Rust 的情况下读取子进程的输出?

c++ - 我如何在C++中输入和输出各种文件类型

bash - Unix 管道 - echo 和 cat

java - 我试图将一串整数添加到数组中,但这是不正确的

java - 正则表达式替换java中csv字符串中的空值

php - 我可以用单引号回显变量吗?

bash - 为什么for循环中组合变量的回显不起作用?

java - 如何在 Java8 项目中使用 Http Client API(自 Java 9 起)

Java class.getResourceAsStream 不适用于带前导点的文件