2016-10-02 11 views
-1

날짜와 시간을 함께 파일에 쓰고 싶습니다. 은 arraylist를 사용합니다. 그러나 파일에 쓸 때 .. 단일 이름은 이고 날짜는 두 번 나타납니다. 나는이 할 때 날짜를 인쇄하고 한 번 값하지만 내 이전 값을 덮어 않기 때문에 나의 암시 StandardOpenOption.Append에 어딘가에 관련이 있습니다.] [1]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

하십시오 올바른을 모든 들여 쓰기를 맞 춥니 다. 감사. –

+0

죄송합니다. 내 bad.corrected – seedroots

답변

0

목록에 datename를 추가 한 후 stdrooms에는 두 개의 요소가 들어 있습니다.

이터레이터 bookings은 이제 목록의 크기를가집니다. 따라서 Files.write 두 번 실행됩니다

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

datename 모두 포함 stdrooms 인쇄 기본 toString 구현이 차례로 전체 목록을 인쇄하는 데 사용됩니다.

하나의 해결책은 stdrooms 대신 인쇄 s을 사용할 수 있습니다 :

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

그것은 오류를 보여줍니다. stdrooms 대신 "s"를 사용하면 인수가 일치하지 않습니다. 문자열을 byte []로 변환 할 수 없습니다. – seedroots

+0

's.getBytes()'는 바이트 배열을 반환합니다. 나는 답을 바로 잡을 것이다. – ldz

+0

완벽한! 내가 원하는대로 ... 그건 아주 작은 허튼 소리 였어! – seedroots

관련 문제