从inFile读取 - Java

时间:2018-04-16 08:04:55

标签: java

我正在尝试从文件中读取 - 我的代码如下:

try 
    {
        Scanner inFile = new Scanner (new FileReader("input.txt"));

        while(inFile.hasNextLine()) 
        {
            first = inFile.next();
            second = inFile.next();
            System.out.println("first: " + first);
            System.out.println("second: " + second);

        }

        inFile.close();    

    }
    catch(FileNotFoundException exception)
    {
        System.out.println("Unable to locate file");
    }

文件文字是:

Fred 10
John 13
Bob
Jill 43

由于某些行不包含任何文本,程序崩溃。例如,当程序尝试在第三行中给出“秒”值时,该程序崩溃 - 包含Bob的值。

如何创建if值?或者忽略没有价值?

2 个答案:

答案 0 :(得分:0)

您的程序(错误地)假设 总是每行两个值。如果情况不对,那么您需要考虑这种情况。一种方式可能是(未经测试):

while(inFile.hasNextLine()) {
  first = inFile.next();
  if (!inFile.hasNext()) {
    continue; // ignore this line
  }
  second = inFile.next();
  ...
}

与您的问题无关:您错误地关闭了文件。 This info可能派上用场。

答案 1 :(得分:0)

您可以使用useDelimiter函数并再次迭代该行

while(inFile.hasNextLine()) 
            {

                Scanner sc = new Scanner(inFile.nextLine());
                sc.useDelimeter(" ");
                while(sc.hasNext())
                    System.out.println(sc.next());

            }