2013-11-25 3 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

Append новую строку в 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 ("\ п"); – SergeyB

1

Вам нужно добавить символ новой строки в ваш цикл:

 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 ("\ п"); – SergeyB

Смежные вопросы