2016-04-06 29 views
2

Kullanıcının bir dosyada birkaç notu saklamasına izin veren bir program yazdım. PrintWriter & Dosyayı Java içinde nasıl kullanacağımı anladım ama benim sorunum çıktı. Not Defteri'nde dosyayı kontrol ettiğimde, yalnızca bir not girebilir & Sadece bir not mevcut. İştejava'da PrintWriter & File

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); 
    } 

    } 
} 

çıkışı var: İşte kod O kadar çıktı ı durdurmak için söylemek kadar bana notlar saklamak devam etmesine olanak sağlayacaktır değiştirme hakkında gitmek nasıl

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

? kullanıcı girişi ekler gibi potansiyel olarak birden fazla yazma ile döngü Çünkü

+0

Tam olarak sorun nedir? Eski dosya içeriğinizin programın 2 akışı arasında yazılıyor mu? Çünkü PrinteWriter bir dosyanın üzerine yazıyor, bkz. Https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#PrintWriter%28java.io.File%29 Veya başka bir konuyla ilgili sorunuz ? – Robert

+0

Robert - dosyam her zaman üzerine yazılır ancak bir dosyaya birden fazla not kaydedilmesi gerekir. –

cevap

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

, bir Try-with-resources try bloğunda yazıyor kaydırılabilir. Try-with-resources, try bloğundan çıktıktan sonra dosyanın kapatılmasıyla ilgilenir: