2013-04-06 299 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