2013-11-25 18 views
5

Próbuję dodać wartości do pliku tekstowego. Działa dobrze, a wydajność jest dobra w czasie zaćmienia. Ale kiedy widzę wartości w pliku, mam prosty wzór: 2526272829.Odczyt i zapis do pliku tekstowego w 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(); 
     } 

    } 
} 

i ja też chcę wiedzieć, jak działa przechowywanie BufferedReader więc proszę podać jakieś linki.

+0

[Wszystko czego potrzebujesz] (http://goo.gl/lIsLZZ) –

+0

Jakiego rodzaju produkcji oczekujesz? – kviiri

+0

Jakie są pożądane wyniki? –

Odpowiedz

0

Dołącz nową linię do FileWriter na każdej iteracji, ale czy to prawda, nie łączenia ciągów.

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

Spróbuj tego. ręcznie dodać nową linię ..

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

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

1

Trzeba dodać znak nowej linii w swojej pętli 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 
     } 

Będzie to pisać w nowej linii po każdym dopisywania. Zakładam, że to jest wynik, którego chciałeś.

uzyskać informacje BufferedReader można zajrzeć tutaj, aby uzyskać więcej informacji:

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

+0

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

Powiązane problemy