2010-11-19 7 views
4

java.io.File, FileInputStream & FileOutputStream을 사용하여 파일을 만들었습니다. 파일의 크기를 변경하지 않고 파일의 일부 바이트 값 (예 : 15에서 35로 변경)을 변경하려고한다고 가정합니다. RandomAccessFile 개체를 만든 다음 RandomAccessFile.seek을 사용하여 바이트 15로 이동하고 새 바이트를 작성한 다음 파일을 닫습니다. 파일 크기가 변경되었습니다. 이 접근 방식에있어 문제점은 무엇이며 어떻게 성공적으로 수행 할 수 있습니까?파일의 일부 바이트를 덮어 쓰는 방법은 무엇입니까?

+5

일부 코드를 표시하십시오. – unbeli

+1

예, 사용중인 코드를 알려주십시오. – jjnguy

+2

FileOutputStream과 RandomAccessFile을 동시에 사용하려고하지 않는다고 가정합니다. –

답변

4

정말로 RandomAccessFile에 바이트를 쓰고 있습니까?

file.write(35); 

그런 다음 실제로 4 바이트 인 int35을 쓰고있다 : 당신이 메서드를 호출하는 경우. 1 바이트를 쓰려면 다음을 시도하십시오.

file.writeByte(35); 
관련 문제