2011-12-13 4 views
6

에 다시 쓰기 나는이 같은 간단한 함수를 작성. 재 작성하지 않기 위해 어떻게 변경할 수 있습니까? file 변수는 전체적으로 File으로 정의됩니다.는 파일

답변

3

, 당신은 boolean append 매개 변수를 추가해야합니다. 그것은 다음과 같이 표시됩니다 :

FileOutputStream fop = new FileOutputStream(file, true); 

이 대신 지우고 현재의 모든 데이터를 다시 작성의 파일을 추가해야 FileOutputStream을 알려줍니다.

+0

네, 그게 맞았어요, – seventeen

+0

그래도 조금 문제가있어, 그것은 어떤 공간을 만들지 않는다, 그것은 마지막 문자 이후에 정확하게 쓴다. 그래서 나는 각 글을 쓴 후에 공간을 줄 수 있는가? – seventeen

+1

'fop.write (...)'를'fop.write (... + "\ n")' – Jon

2

에 매개 변수로 플래그를 추가하는 구성자를 사용하십시오. 당신의 FileOutputStreamconstructor

FileOutputStream fop=new FileOutputStream(file, true); 
+0

, 감사 – seventeen

+0

하지만 여전히 약간의 문제로 암시 적으로 수행됩니다, 그것은 어떤 공간을 나던, 그것은 마지막 문자 이후에 정확히 기록 읽을 수 없으면 각 글자 뒤에 공백을 넣을 수있는 방법은 무엇입니까? – seventeen

+0

@MostafaAlli : ** write ** space –

0

특정 바이트 오프셋에서 쓰기를 시도하는 경우 RandomAccessFile을 시도하십시오.

+1

그것은 반드시 특정 오프셋이 아니라 단지 첨부 된 파일을 원합니다. – Jon

0

방향 매개 변수 생성자가 적합합니다. 중복 됨 :

생성자가 대신 해줍니다.

1

append 모드에서이 파일을 열어야합니다. 기본값은 FileOutputStream이고 파일은 write 모드로 열립니다. 그 것 때문에 그리고 당신은 file의 존재를 확인 할 필요가 없습니다, 그것은 정확했다 FileOutputStream

private static void write(String Swrite) throws IOException { 
    FileOutputStream fop=new FileOutputStream(file, true); 
    if(Swrite!=null) 
     fop.write(Swrite.getBytes()); 
    fop.flush(); 
    fop.close(); 
}