2014-10-19 1 views
0

Я хочу сохранить содержимое строки в файле Java. Содержимое строки «sttr» считывается из текстового файла по строкам. Когда я запускаю код, я получил правильный вывод, но когда я пытаюсь записать содержимое в файл Java, я получил только одну строку. Код:напишите java-файл из строки (Строковое содержимое из текстового файла, прочитав его по строкам)

String content = " test "; 
String content1 = "test01"; 
//read text file line by line 

try { 
    FileInputStream fstream = new FileInputStream("E:\\test\\myfile.txt"); 
    DataInputStream in = new DataInputStream(fstream); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

    String strLine; 
    String sttr ; 
    while ((strLine = br.readLine()) != null) { 
     sttr = strLine; 
     System.out.println(content+sttr+content1); 

     File file = new File("E:/test/output.java"); 
     // if file doesnt exists, then create it 
     if (!file.exists()) { 
      file.createNewFile(); 
     } 

     FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
     BufferedWriter bw = new BufferedWriter(fw); 

     //bw.write(content); 
     bw.write(content+sttr+content1); 
     //bw.write(content1); 
     //bw.close(); 
     //System.out.println("Done");  
    } 
} 
catch (Exception e) { //Catch exception if any 
    System.err.println("Error: " + e.getMessage()); 
} 
+0

Отредактируйте свой код, и вы вдруг поймете, что вы создаете и записываете свой файл ** внутри ** цикла while. –

ответ

1

Не воссоздавайте BufferedWriter каждый раз, выполняйте его один раз за пределами цикла. В противном случае он удалит содержимое файла.

File file = new File("E:/test/output.java"); 
// if file doesnt exists, then create it 
if (!file.exists()) { 
    file.createNewFile(); 
} 
FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
BufferedWriter bw = new BufferedWriter(fw); 

String strLine; 
String sttr ; 
while ((strLine = br.readLine()) != null) { 
    // [...] 
Смежные вопросы