2016-10-02 1 views
-1

Ich möchte Name mit Datum und Uhrzeit in eine Datei schreiben für diese i Verwenden Sie eine Arraylist.Aber wenn ich es auf Datei..ein einzelner Name entlang mit Datum schreiben erscheint zweimal; Es ist irgendwo meinen impliziert StandardOpenOption.Append verwendet, denn wenn ich es nicht Datum druckt und Wert einmal aber meine bisherigen Werte nicht überschreiben.] [1]Datum und Name in eine Datei schreiben Mit Java

//created method to write date and name onto file 

public void standardRoom() 
{ 
    try { 
     Path p=Paths.get("test/standardRoom.text"); 

     if(Files.notExists(p)) 
     { 
      Files.createFile(p); 
     } 
     System.out.println("Enter Name"); 
     String name=sc.next(); 

     List<String>stdrooms=new ArrayList<>(); 

     date = d.toString(); 

     stdrooms.add(date); 
     stdrooms.add(name); 

     System.out.println("Standard Room booked"); 

     Iterator<String>bookings=stdrooms.iterator(); 
     while(bookings.hasNext()) 
     {    
      String s=bookings.next(); 
      //Files.write(p, stdrooms); 
      Files.write(p, stdrooms,StandardOpenOption.APPEND); 
     } 
    } catch (IOException e) { 
    }   


} 
} 
+1

Bitte, korrigieren und alle Vertiefungen auszurichten. Vielen Dank. –

+0

Hoppla! Mein bad.corrected – seedroots

Antwort

0

Nach der Zugabe von date und name zur Liste , stdrooms enthält zwei Elemente.

Der Iterator bookings hat jetzt die Größe der Liste. Daher wird Files.write zweimal ausgeführt:

Files.write(p, stdrooms,StandardOpenOption.APPEND); 

Wenn stdrooms beide date und name enthält, gedruckt wird, die Standard-toString Implementierung verwendet wird, was wiederum die gesamte Liste druckt.

Eine Lösung könnte sein s zu verwenden, um statt stdrooms Druck:

Files.write(p, s.getBytes(),StandardOpenOption.APPEND); 
+0

Es zeigt Error. Argument stimmt nicht überein, wenn ich "s" anstelle von Standardräumen verwende; String kann nicht in Byte [] konvertiert werden – seedroots

+0

's.getBytes()' gibt ein Byte-Array zurück. Ich werde die Antwort korrigieren. – ldz

+0

Perfekt! So wie ich es will ... das war ein winziger Mist! – seedroots

Verwandte Themen