2015-04-26 5 views
1
import java.io.FileWriter; 
import java.io.PrintWriter; 

public class DemoPrint { 

    public static void main (String args []) { 


     try{ 

      PrintWriter coolFile = new PrintWriter("c:\\JavaIO\\cool.txt"); 
      FileWriter file = new FileWriter("c:\\JavaIO\\cool.txt", true); 

      coolFile.println("Why isn't this adding another line?"); 
      coolFile.close(); 
     } 
     catch (Exception e) { 
      System.out.println("Error"); 
     } 

} 
    } 

Итак, я новичок в программировании/java, и я пытаюсь открыть этот файл и добавить данные и добавить еще одну строку, но по какой-то причине данные просто стираются и перезаписанный тем, что у меня есть в coolFile.println("").Добавление файла .txt удаляет все

Может ли кто-нибудь помочь мне в этом? Я знаю, что это, вероятно, легкое решение ... Я учусь .. Спасибо!

+0

попытаться удалить файл FileWriter = новый FileWriter ("c: \\ JavaIO \\ cool.txt", true); " – svarog

ответ

4

Открываешь как в PrintWriter и FileWriter на том же файле. Эти два не связаны друг с другом - они являются двумя точками доступа к одному и тому же файлу (чего вы действительно не должны делать).

Открытие PrintWriter уже выполнено без добавления, и, следовательно, оно уничтожило все содержимое файла. Затем вы открываете еще один «вид» на нем - FileWriter, и он настроен на добавление, но на данный момент ему больше нечего добавить в.

Правильный способ - создать PrintWriter так, чтобы он был под номером от FileWriter. Не два представления файла - одно представление, которое перемещается по другому виду.

PrintWriter coolFile = new PrintWriter(new FileWriter("filename", true)); 
+1

Фантастический! Спасибо, что имеет смысл, и я действительно с моим учителем объяснял бы такие вещи лучше! – DojoOria

+0

Я очень ценю это! спасибо – DojoOria

0

Это, как вы должны использовать PrintWriter с FileWriter:

FileWriter fw = new FileWriter("c:\\JavaIO\\cool.txt",true); 
BufferedWriter bw = new BufferedWriter(fw); 
PrintWriter coolFile = new PrintWriter(bw); 
coolFile.println("This is adding another line."); 
coolFile.close(); 
+0

такие ответы, которые не имеют достаточного объяснения, приветствуются и будут отмечены как низкокачественный ответ очень скоро –

+0

Я ценю помощь, но мы еще не были знакомы с BufferedWriter. Я сохраню это в своей библиотеке вопросов, поэтому, когда мы это сделаем, я буду использовать его в качестве ссылки. Спасибо! – DojoOria

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