我正在尝试从文件中读取 - 我的代码如下:
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值?或者忽略没有价值?
答案 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());
}