2013-03-12 2 views
0

Я пытаюсь скопировать текстовый файл, но когда код завершит выполнение, у меня есть только последняя строка текста в файле. Очевидно, что scanLine() продолжает переписывать одну и ту же строку, но я не могу найти решение этой проблемы. Есть идеи?Запись в файл, но только последняя строка сохранена

do{     
    try{ 
    FileWriter name = new FileWriter("/home/fok/Desktop/out"); 
    BufferedWriter out = new BufferedWriter(name); 
    a=x.nextLine();scanner x grabs next line and sets it string a 
    out.write(a);//writes a to file 
    out.close();//closees file 
    } catch (IOException ioe){ 
    System.out.println("file writer error"); 
    } 

} while(x.hasNext()); 

ответ

1

Это довольно просто, вы закрываете и открываете файл внутри цикла for.

public void readfile(){ 
    try {   
    FileWriter name = new FileWriter("/home/fok/Desktop/out"); 
    BufferedWriter out = new BufferedWriter(name); 
     do {     
     a=x.nextLine();scanner x grabs next line and sets it string a 
     out.write(a);//writes a to file 
     } while(x.hasNext()); 
     out.close();//closees file 
    } catch (IOException ioe){ 
     System.out.println("file writer error"); 
    } 
} 
+0

но потом не может видеть bufferreader вне но filewritter и bufferreader должно быть в попытке поймать так с размахом я должен иметь out.write в одном блоке или там anotherway был бы признателен за помощь – user2155009

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