2016-04-06 3 views
2

Я написал программу, которая позволит пользователю хранить несколько заметок в файле. Я понял, как использовать PrintWriter & Файл в Java, но моя проблема связана с моим выходом. Я могу только ввести одно примечание без вопроса &, когда я проверяю файл в «Блокноте», присутствует только одна заметка. Вот код:PrintWriter & File in java

import java.util.*; 
import java.io.*; 

public class MemoPadCreator{ 

    public static void main(String[] args) throws FileNotFoundException { 

    Scanner input = new Scanner(System.in); 
    boolean lab25 = false; 
    File file = new File("revisedLab25.txt"); 
    PrintWriter pw = new PrintWriter (file); 
    String answer = ""; 

    do{ 
     while(!lab25){ 

     System.out.print("Enter the topic: "); 
     String topic = input.nextLine(); 

     Date date = new Date(); 
     String todayDate = date.toString(); 

     System.out.print("Message: "); 
     String memo = input.nextLine(); 

     pw.println(todayDate + "\n" + topic + "\n" + memo); 
     pw.close(); 

     System.out.print("Do you want to continue(Y/N)?: "); 
     answer = input.next(); 
     } 

    }while(answer.equals("Y") || answer.equals("y")); 

    if(answer.equals("N") || answer.equals("n")){ 
     System.exit(0); 
    } 

    } 
} 

Вот результат:

Enter the topic: I love food! 
Message: Food is life! 
Do you want to continue(Y/N)?: Y 
Enter the topic: Message: 

Как идти об изменении его поэтому выход позволит мне продолжать хранить заметки, пока я не скажу, это остановить?

+0

Какая проблема? Сохраняется ли ваше старое содержимое файла между двумя запусками программы? Это потому, что PrinteWriter перезаписывает файл, см. Https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#PrintWriter%28java.io.File%29 Или ваш вопрос о чем-то другом ? – Robert

+0

Robert - мой файл всегда перезаписывается, но мы должны хранить несколько заметок в файле. –

ответ

0
try { 
    Files.write(Paths.get("revisedLab25.txt"), ("the text"todayDate + "\n" + topic + "\n" + memo).getBytes(), StandardOpenOption.APPEND); 
}catch (IOException e) { 
    //exception handling 
} 

Поскольку вы зацикливание с потенциально нескольких записей, как пользователь добавляет вход, вы можете обернуть пишет в Try-with-resources Ьгу блока в. Попытка с ресурсами позаботится о закрытии файла после выхода из блока try:

try(PrintWriter pw= new PrintWriter(new BufferedWriter(new FileWriter("revisedLab25.txt", true)))) { 

    do{ 
     while(!lab25){ 

     System.out.print("Enter the topic: "); 
     String topic = input.nextLine(); 

     Date date = new Date(); 
     String todayDate = date.toString(); 

     System.out.print("Message: "); 
     String memo = input.nextLine(); 

     pw.println(todayDate + "\n" + topic + "\n" + memo); 

     System.out.print("Do you want to continue(Y/N)?: "); 
     answer = input.next(); 
     } 

    }while(answer.equals("Y") || answer.equals("y")); 
} 
catch (IOException e) { 
    //exception handling 
}