나는 호프만 자바 응용 프로그램을 작성 중이며 거의 완료되었습니다. 나는 한 가지 문제가있다. 나는 "101011101010"과 같은 문자열을 파일에 저장해야한다. 현재 코드로 저장하면 0 또는 1마다 1 바이트를 차지하는 문자로 저장됩니다. 모든 0/1을 조금 저장할 수 있다는 것이 확실합니다.0과 1의 문자열을 파일로 비트로
BitSet 및 Integer.valueOf를 사용하여 몇 가지 시도를 이미했지만 작동하도록 할 수 없습니다. 이것은 현재 코드입니다 :
FileOutputStream fos = new FileOutputStream("encoded.bin");
fos.write(encoded.getBytes());
fos.close();
여기서 'encoded'는 "0101011101"과 같을 수있는 문자열입니다. 정수로 저장하려고하면 선행 0이 제거됩니다.
미리 감사드립니다.
EDIT : Huffman은 압축 방법이므로 가능한 한 작게 출력해야합니다.
왜 문자열을 정수로 변환 하시겠습니까? 선행 0이없는 문자열을 저장할 수있는 경우 선행 0으로 문자열을 저장할 수 있습니까? 당신의 문제는 정확히 무엇입니까? – Pat
그럼 압축 방법입니다. 따라서 'a'또는 'b'는 0110 (4 비트이고 1 바이트가 아님)으로 변환됩니다. 문제는 1과 0을 1 바이트로 저장하므로 압축이 없다는 것입니다 (더 악화되었습니다). –