ハフマン コーディングを使用して .txt ファイルを取得し、圧縮するプログラムを作成しました。プログラムは圧縮されたコードを取得し、.hzip ファイルとして保存します。改行文字を含むファイルを圧縮して保存しようとするまで、コードは正常に機能します。これは、ファイルを保存するための私のコードです:
private void codeToFile() {
String code = "";
char letter;
String fileName = this.encodeFileName.replace(".txt", ".hzip");
FileOutputStream byteWriter = null;
FileInputStream reader = null;
try {
byteWriter = new FileOutputStream(fileName);
reader = new FileInputStream(this.encodeFileName);
while (reader.available() > 0) {
letter = (char) reader.read();
code += hCode.get(letter);
if (code.length() > 7) {
int c = Integer.parseInt(code.substring(0, 8), 2)
+ Byte.MIN_VALUE;
byteWriter.write((byte) c);
code = code.substring(8);
}
}
if (code.length() > 0 && code.length() <= 7) {
code += "0000000";
int c = Integer.parseInt(code.substring(0, 8), 2)
+ Byte.MIN_VALUE;
byteWriter.write((byte) c);
}
byteWriter.close();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println("===============================");
System.out.println("File Created: " + fileName);
}
私のエラーは常にこの行に表示されます:
int c = Integer.parseInt(code.substring(0, 8), 2)
+ Byte.MIN_VALUE;
私が得ている特定のエラーは次のとおりです。改行文字がこの問題を引き起こしている理由がわかりません。どんな助けでも大歓迎です。