2012-04-02 2 views
-3

가능한 중복 : 여기
How to append data to a file?java에서 파일을 업데이트하는 방법은 무엇입니까?

빠른 질문은, 어떻게 자바에 존재하는 파일을 업데이트 할 수 있습니까? 파일의

try { 
       File inFile = new File("scores.txt"); 
       BufferedReader br = new BufferedReader(new InputStreamReader(
        new FileInputStream(inFile))); 

이전의 모든 내용이 삭제됩니다 :이 같은 파일을 열 때. 그러나 나는이 정보가 필요하기 때문에 삭제되기를 원하지 않는다. 고마워. 파일을 추가 할 필요가있는 경우

+3

파일을 읽었지만 쓰지는 않습니다. 잘못된 코드를 게시 했습니까? – hmjd

+0

이 줄이 파일 내용을 제거하고 있습니까? 코드의 어느 시점에서 파일에 쓰고 있습니까? –

+0

음침한도 기자. – Sagi

답변

3

은 (FileInputStream의 사용에 쓰고 기반으로 실제 코드가없는 경우) 두 번째 인수의 FileOutputStream의 두 인수 생성자의

사용 하나는 boolean 나타내는입니다 행 오히려 그 덮어 :

try 
{ 
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
     new FileOutputStream("scores.txt", true))); 
             //^^^^ means append 
2

FileOutputStream 또는 또는 FileWriter의 constructurs를 기록 데이터의 끝에 추가할지 여부를 나타내는 부울 추가적인 파라미터를 취할 수 파일 (파일 내용을 겹쳐 쓰는 대신). this link을보십시오.

이렇게 할 수 있습니다 : new FileOutputStream(inFile, true), 그 결과 파일의 이전 내용이 남아 있고, 스트림에 쓰는 모든 내용이 파일의 끝에 추가됩니다.

파일의 특정 내용을 바꾸는 등 고급 업데이트를 원한다면 API에서 특정 방식으로 알 수 있습니다. 나는 당신이 이전 파일을 읽어야하고, 유지하고 싶은 모든 것을 새로운 파일에 쓰고 새로운 파일에도 대체물을 써야한다고 생각한다. 그런 다음 이전 파일을 제거하고 새 파일의 이름을 원래 파일 이름으로 바꿉니다. 적어도 그것이 내가 할 수있는 방법이지만, 내가 알지 못하는 더 나은 방법이있을 수 있습니다.

관련 문제