对于我的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 []并将其与输入进行比较,那么它是完全相同的吗?
答案 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();
注意 - 这不包括处理流,异常处理等