使用Java扫描文本文件

时间:2014-11-18 14:40:53

标签: java java.util.scanner

目的是打印出.txt文件中的名称列表。我使用的代码如下。

import java.util.ArrayList;

import java.util.Scanner;

import java.io.File;

import java.io.FileNotFoundException;


public class FileScanner3 {

public static void main(String args []) throws FileNotFoundException {

    ArrayList<String> names = new ArrayList<String>();
    String inName;

    //Setup a scanner to read from a text file
    Scanner in = new Scanner(new File("namefile.txt").getAbsoluteFile());

    while (in.hasNextLine()) {
        inName = in.next();     
        //Use next() to read string
        names.add(inName);
    }

    //Tidy up by closing files
    in.close();

    //Print names ArrayList
    for(int i =0; i<names.size(); i++) {
        System.out.println((i + 1) + "\t" + names.get(i));
    }
}
}

我得到的错误是:

Exception in thread "main" java.util.NoSuchElementException

at java.util.Scanner.throwFor(Unknown Source)

at java.util.Scanner.next(Unknown Source)

at FileScanner3.main(FileScanner3.java:17)

如果有人能够告诉我什么是错的,那就太棒了!

编辑:拼写

1 个答案:

答案 0 :(得分:2)

没有文本文件,很难猜到,但我想文件末尾有一个空行。您可以通过将内循环转换为

来防止此错误
 while (in.hasNext()) {
        inName = in.next();     
        //Use next() to read string
        names.add(inName);
 }

我希望它有所帮助。