首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读inFile - Java

问阅读inFile - Java
EN

Stack Overflow用户
提问于 2018-04-16 08:04:54
回答 2查看 520关注 0票数 0

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

代码语言:javascript
复制
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");
    }

文件文本是:

代码语言:javascript
复制
Fred 10
John 13
Bob
Jill 43

因为某些行不包含任何文本,程序会崩溃。例如,当程序试图在第三行(包含Bob的值)中给"second“一个值时会崩溃。

如果存在值,我如何创建?或者忽略如果没有价值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-16 08:11:31

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

代码语言:javascript
复制
while(inFile.hasNextLine()) 
            {

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

            }
票数 0
EN

Stack Overflow用户

发布于 2018-04-16 08:09:33

您的程序(不正确)假设每行总是有两个值。如果这不是真的,你就得考虑这个案子。一种方法可以(未经测试):

代码语言:javascript
复制
while(inFile.hasNextLine()) {
  first = inFile.next();
  if (!inFile.hasNext()) {
    continue; // ignore this line
  }
  second = inFile.next();
  ...
}

与您的问题无关:您正在错误地关闭inFile。这个信息可能会派上用场。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49852356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档