我正在写一个简单的帮助类,它从文件中获取数据,编辑它然后将其写回为字节数组。 我遇到的问题发生在写入文件时,它以某种方式损坏数据,导致我的文件变得无法使用。为什么我的输出文件与原始文件不同?
这里是我的代码片段:
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'的? –