我正在寫一個簡單的幫助類,它從文件中獲取數據,編輯它然後將其寫回爲字節數組。 我遇到的問題發生在寫入文件時,它以某種方式損壞數據,導致我的文件變得無法使用。爲什麼我的輸出文件與原始文件不同?
這裏是我的代碼片段:
FileOutputStream bytewriter = new FileOutputStream(output_file_name);
byte[] bytedata = Files.readAllBytes(Paths.get("myPath"));
byte[] result = edited_data.getBytes();
bytewriter.write(result);
bytewriter.close();
即使我只是寫的原始數據,而無需編輯回來,輸出文件的不同之處一個十六進制值,以便使用該文件的程序認爲它破壞(我正在使用一個簡單的十六進制編輯器來檢查差異)。
有沒有更簡單/更好的方法來做我想做的事情而不會破壞文件?爲什麼腐敗甚至發生?我嘗試了幾乎每種可能的寫入/讀取文件的組合,每次都會發生。
對不起,長期的問題和拼寫錯誤,任何意見/幫助表示讚賞。祝你有個美好的一天:D
它是什麼類型的文件?這是一個圖像或PDF文件?你應該使用'Binary'模式還是'Text'模式? – user2004685
你是否應該包含一個編碼? –
你是如何從'bytedata'到'edited_data'的? –