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

  • 本文关键字:一行 Int 文件 java
  • 更新时间 :
  • 英文 :


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

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(( 时也没有问题。然而,当我尝试解析第一行的第一个数字时,我得到了一个 NumberFormatException。文本文件本身似乎没有任何问题,每一行的格式都相同。为什么会这样?

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

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

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

最新更新