2013-04-06 146 views
0

我正在为一个程序编写代码,该程序从文本文件中提取单词并按字母顺序排列,但似乎无法使扫描仪正常工作?扫描仪文本文件

public static void Option1Method() throws IOException { 
    FileWriter aFileWriter = new FileWriter("wordlist.txt", true); 
    PrintWriter out = new PrintWriter(aFileWriter); 
    String word = JOptionPane.showInputDialog(null, "Enter a word"); 

    out.println(word); 
    out.close(); 

    aFileWriter.close(); 

    String inputFile = "wordlist.txt"; 
    String outputFile = "wordlist.txt"; 
    FileReader fileReader = new FileReader(inputFile); 
    Scanner scan = new Scanner(fileReader); 
    scan.nextLine; 
    String inputLine; 
    List<String> lineList = new ArrayList<String>(); 
    while ((inputLine = scan.nextLine()) != null) { 
     lineList.add(inputLine); 
    } 
    fileReader.close(); 

    Collections.sort(lineList); 

    FileWriter fileWriter = new FileWriter(outputFile); 
    PrintWriter out1 = new PrintWriter(fileWriter); 
    for (String outputLine : lineList) { 
     out1.println(outputLine); 
    } 
    out1.flush(); 
    out1.close(); 
    fileWriter.close(); 
} 

回答

4

Scanner#nextLine是一种方法。你需要添加括号。更换

scan.nextLine; 

scan.nextLine(); 
      ^

而且Scanner使用hasNextLine检查后续行。在打开的文件上调用scan.nextLine()最终会导致NoSuchElementException。替换:

while ((inputLine = scan.nextLine()) != null) { 
    ... 
} 

while (scan.hasNextLine()) { 
    inputLine = scan.nextLine(); 
    lineList.add(inputLine); 
} 

注意,要scan.nextLine()第一调用导致第一线而不被写入到有序输出文件被消耗。如果您打算将所有单词写入文件,请删除或注释此行。

+0

非常感谢 – user2205055 2013-04-06 18:14:37