2013-11-25 100 views
5

我正在嘗試在文本文件中添加值。它的運行良好並且在日蝕中輸出很好。 但是,當我在文件中看到的值,我得到一個直接模式:2526272829.在java中讀取和寫入文本文件

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class FileDemo { 
    public static void main(String[] args) throws IOException { 
     BufferedReader bfr; 
     String line;  
     bfr=new BufferedReader(new InputStreamReader(System.in)); 
     String fileName=bfr.readLine(); 
     File file=new File(fileName);  
     if(!file.exists()){ 
      file.createNewFile(); 
     }  
     try{ 
      bfr=new BufferedReader(new FileReader(file)); 

      while((line=bfr.readLine())!=null){ 
       System.out.println(line); 
      } 
      FileWriter fw=new FileWriter(file,true);    
      for(int i=25;i<30;i++){     
       fw.append(String.valueOf(i)); 
      } 

      while((line=bfr.readLine())!=null){ 
       System.out.println(line); 
      } 
      bfr.close(); 
      fw.close(); 

     }catch(FileNotFoundException fex){ 
      fex.printStackTrace(); 
     } 

    } 
} 

,我也想知道的BufferedReader存儲是如何工作的,所以請給一些鏈接。

+0

[您只需](http://goo.gl/lIsLZZ) –

+0

是你期待什麼樣的產出? – kviiri

+0

你想要的輸出是什麼? –

回答

0

追加新行的FileWriter在每次迭代,但這樣做的權利,不要連接字符串。

FileWriter fw=new FileWriter(file,true);    
for(int i=25;i<30;i++){  
    fw.append(String.valueOf(i)); 
    fw.append("\n"); 
} 
1

試試這個。手動添加一個新行..

fw.append(String.valueOf(i)+"\n"); 
+0

fw.append(String.valueOf(i)); fw.append( 「\ n」); – SergeyB

1

您需要在添加一個換行符你的for循環:

 FileWriter fw=new FileWriter(file,true);    
     for(int i=25;i<30;i++){     
      fw.append(String.valueOf(i)+"\n"); //Here I've made the small correction 
     } 

這將在新行每次追加時間寫。我假設這是你想要的輸出。

對於BufferedReader中的信息,你可以看看這裏的更多信息:

http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html

+0

fw.append(String.valueOf(i)); fw.append( 「\ n」); – SergeyB