0
.docxファイルをバイト配列に読み込みましたが、.docxファイルに再度保存しようとしたときにファイルを開くことができませんでした。Javaはバイト配列から.docxファイルを作成します
誰でも理由を説明できますか?
public static void main(String[] args) throws IOException {
byte[] data = readFile("test.docx");
System.out.println(data.length);
try (FileOutputStream fos = new FileOutputStream("testCopy.docx")) {
fos.write(data);
}
}
そしてここreadFileの方法
public static byte[] readFile(String filePath) throws FileNotFoundException, IOException {
File file = new File(filePath);
byte[] bytes = new byte[(int) file.length()];
try (DataInputStream dataInputStream = new DataInputStream(new BufferedInputStream(new FileInputStream(filePath)))) {
dataInputStream.readFully(bytes);
}
return bytes;
}
これは問題を解決します。ありがとうございました。 – Ibrahim
@Ibrahimまた、バイト配列をこのように初期化することをお勧めします:byte [] bytes = new byte [fileInputStream.available()];ドキュメントから: "読み取ることができる残りのバイト数の見積もりを返します" – Cargeh