gpt4 book ai didi

java - 无法在文件的第一行解析Int

转载 作者:行者123 更新时间:2023-12-02 01:20:53 25 4
gpt4 key购买 nike

我有一个简单的文本文件,每行都有一个数字,然后是一些其他数据,如下所示:

1 somedata someotherdata 
2 randomstuff notimportant

我想要读取文件并对每一行的数字使用 parseInt() 。我的(简化的)代码:

File file = new File("data.txt");

BufferedReader reader = new BufferedReader(new FileReader(file));

String line;
while ((line = reader.readLine())!= null) {
String splitLine[] = line.split(" ");
int number = Integer.parseInt(splitLine[0]);
String str1 = splitLine[1];
String str2 = splitLine[2];
// do some stuff with the data
}

在大多数情况下,这都是有效的......除了文件的第一行。读取第一行并将其拆分完全没有问题。对所有后续行使用 parseInt() 时也没有问题。然而,当我尝试 parseInt() 第一行的第一个数字时,我得到了 NumberFormatException。文本文件本身似乎没有任何问题,每一行的格式都是相同的。为什么会这样?

最佳答案

您是否使用 Microsoft 软件进行保存?一些工具添加了有争议的1 “utf-8 BOM”2到文本文件开头的序列,Java 不会专门解释该序列。

如果是这种情况,有两个明智的行动方案:

  1. 确保文件未与 BOM 一起保存。 (“另存为”对话框中通常有一个选项。)
  2. 检查 BOM ("\uFEFF") 是否存在,如果它位于文件第一行的开头,请将其删除。

关于java - 无法在文件的第一行解析Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57726330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com