2014-09-05 183 views
1

首先,這不是其他帖子的重複,因爲在我的問題中,掃描儀類不能識別.txt文件的開始而不是結束,而是開始大約1/2通過文件的方式。Java掃描器不從文件開始

這裏是我的代碼:

package Program; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class App { 

public static void main(String[] args) throws FileNotFoundException { 
    String filename = "C:\\Users\\vroy\\Programming\\Text documents\\P&P.txt"; 

    File textFile = new File(filename); 

    Scanner reader = new Scanner(textFile); 

    // int value = reader.nextInt(); 
    // System.out.println(value); 

    while (reader.hasNextLine()) { 
     String line = reader.nextLine(); 
     System.out.println(line); 
    } 

    reader.close(); 
} 

} 

這裏是.TXT文件,我的計劃是閱讀:

http://www.goodreads.com/ebooks/download/1885.Pride_and_Prejudice?doc=2

我的程序啓動打印出的文本行開始:「用不良判斷的質疑......「

它應該開始更多的文件。

這是掃描儀類的問題嗎?

+0

嘗試查看http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#useDelimiter(java.lang.String) – DmitryKanunnikoff 2014-09-05 01:31:24

+1

它完美的工作在我的netbeans 8中。對我來說,你使用什麼ID?嘗試bufferreader,看看你是否得到相同的結果 – 2014-09-05 01:34:24

回答

3

這是掃描儀類的問題嗎?

沒有。

我剛剛測試了你的代碼。實際上,答案非常有趣 - 我假設你在IDE(如Eclipse)中運行此代碼。 System.out.println()打印到「控制檯」。控制檯有最大數量的行顯示,並且由於您的文件很長,它不顯示開始。

它循環遍歷所有行。爲了證明這一點,使之增加一個數字時,它打印一行如:

int counter = 0; 
while (reader.hasNextLine()) { 
    String line = reader.nextLine(); 
    System.out.println(line); 
    counter++; 
} 

你會看到,櫃檯正是在文檔中的行數。

+0

但它爲什麼顯示從netbeans ide開始的一切? – 2014-09-05 01:37:07

+1

不同的IDE或不同的設置會將控制檯限制到不同的行數。沒有任何理由說他的任何導入類(java.io.File和java.util.Scanner)不工作,除非他解壓縮,編輯它們並重新編譯(非常不可能) – 2014-09-05 01:38:36