BitSet을 사용하여이를 파일에 쓰고 싶습니다. writeObject 메소드를 사용하여 ObjectOutputStream을 사용하는 솔루션을 발견했습니다.Java에서 파일에 BitSet 작성
나는 내가 파일에 바이트를 작성하는 노력 자바 API에 ObjectOutputStream를 쳐다 보면서 당신은 내가 클래스를 확인하려고 다른 것들 (바이트, INT, 짧은 등)
를 쓸 수 있는지 보았다 다음 코드를 사용하여 결과를 내게 1 바이트 대신 7 바이트 파일을 제공합니다
내 질문은 파일의 처음 6 바이트 무엇입니까? 왜 거기에 있니?
내 질문은 파일에 많은 양의 데이터 쓰기를 시작하고 내가 무엇인지 모른 채 파일에 임의의 바이트를 삽입하고 싶지 않기 때문에 내 질문이 BitSet과 관련이 있습니다. 여기
코드입니다 : 애브너 어떤 도움에 대한
byte[] bt = new byte[]{'A'};
File outFile = new File("testOut.txt");
FileOutputStream fos = new FileOutputStream(outFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.write(bt);
oos.close();
감사
그래서 내가 올바르게 이해한다면 ObjectOutputStream을 사용하여 무언가를 쓸 때마다 모든 쓰기에 심각한 오버 헤드가 발생합니다. 예를 들어 int, short, byte 및 문자열을 쓸 경우 각 항목에 대해 4 세트의 추가 데이터를 얻을 수 있습니까? – Avner
아니요. writeObject() 메서드 만 유형 헤더를 추가합니다. writeUTF() 메서드는 2 바이트 길이의 접두사를 추가합니다. 기본 writeXX() 메소드는 오버 헤드를 추가하지 않습니다. 자세한 내용은 API 문서를 참조하십시오. –
또한 형식 정보는 개체 단위입니다. 기본적으로 기본 배열 (BitSet 등)로 구성된 객체의 경우 배열의 크기에 상관없이 오버 헤드가 일정합니다. –