如何将二进制正确写入文件并进行证明?

时间:2017-12-03 13:30:08

标签: java

对于我的Java程序,我得到一个字节数组列表,我需要将其写入文件。我以前尝试过的是

FileWriter fw = new FileWriter("file.out");
BufferedWriter bw = new BufferedWriter(fw);

bw.write(new String(data));
bw.flush();

数据是列表中的byte []。 因为我将它转换为字符串我假设我放弃了二进制文件的正确性。

所以我现在正在尝试使用FileOutputStream。

File myFile = new File("file.out");
FileOutputStream fos = new FileOutputStream(myFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);

bos.write(data);
bos.flush();

此外,数据是列表中的byte []。

我的问题是,如果我的书面文件确实是二进制正确的,我现在如何检查。如果我将文件的每一行读作byte []并将其与输入进行比较,那么它是完全相同的吗?

1 个答案:

答案 0 :(得分:0)

将数组写入文件:

List<byte[]> list = new ArrayList<byte[]>();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(filePath));
out.writeObject(list);

然后从同一个文件中读取你的数组:

ObjectInputStream in = new ObjectInputStream(new FileInputStream(filePath));
List<byte[]> byteList = (List<byte[]>) in.readObject();

注意 - 这不包括处理流,异常处理等