2014-12-23 26 views
3

我做這樣的事情的Java Outprinting大文件Line通過每次

BufferedReader br = new BufferedReader(new FileReader(f)); 
     String line; 
     while ((line = br.readLine()) != null) { 
      System.out.println(line); 
     } 
     br.close(); 

它不會被線outprint線。相反,它會滯後2-3秒,然後一次顯示。我試過把睡眠方法等。我怎麼能做到這一點,所以它需要它的時間,並通過每一個,而不是隻是落後,一次吐出它全部?

+0

你的文件內容是什麼?給出一些示例輸出 – varun

+0

你確定該文件有換行符嗎?在編輯器中,窗口變大,線條不應重新格式化。在Linux或OS X上運行'cat | od -c'來查看\ r \ n(windows換行符)或\ n(* nix換行符) – HankCa

+0

哦,並且不同換行符的組合會導致類似你描述的問題。 – HankCa

回答

4

嘗試清空輸出。

System.out.flush(); 

各的System.out.println

+0

如果不打印它會怎麼樣?如果我只是爲每條線路運行空洞會怎麼樣? – Bug

+0

「運行空洞」是什麼意思?該文件是一個空的文件,有一堆新的線? – hofan41

+0

對於文件中的每一行,我都會將其發送到網站進行授權。它印出了每個授權。而不是outprinting然後暫停比outprinting。它滯後2-3秒,然後打印每一件東西 – Bug

2

這可能是因爲你的文件不會在每一行的末尾有回車符後。所以,它將整個文件視爲一行。

+0

我同意這一點。 – niceman

+0

這不是,因爲我正在爲每行運行空洞 – Bug

+0

@Master你是什麼意思? – haley

0

嘗試將行發送到數組列表。看看數組列表是否包含每一行。然後嘗試通過塊將數組列表迭代到網站塊。

BufferedReader br = new BufferedReader(new FileReader(f)); 
ArrayList<String> list = new ArrayList<String>(); 

     String line; 
     while ((line = br.readLine()) != null) { 
      list.add(line); 
     } 
     br.close(); 

     for(String one_line: list){ 
     //send lines to website: 
     //sendLine(one_line); 
     }