gpt4 book ai didi

java - 从文件读取时获取与写入文件不同的字节数组

转载 作者:行者123 更新时间:2023-12-02 03:40:38 24 4
gpt4 key购买 nike

我正在将字节数组写入文件:

PrintWriter pw = new PrintWriter(new FileOutputStream(fileOutput, true));
pw.write(new String(cryptogram, Charset.defaultCharset()));
pw.close();

然后,我从文件中读取它,如下所示:

String cryptogramString = new String();
while (scPriv.hasNext()) {
linePriv = scPriv.nextLine();
cryptogramString += linePriv;
}

但我不知道如何从 cryptogramString 生成 byte[]。我正在尝试这个:

byte[] b = cryptogramString.getBytes(Charset.defaultCharset());
System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(cryptogram));

但它不会返回相同的值。有谁知道如何解决这个问题吗?

最佳答案

您应该决定是编写文本还是二进制。

加密数据始终是二进制的,这意味着您不应使用 Reader/Writer/String 类。

try (FileOutputstream out = new FileOutputStream(filename)) {
out.write(bytes);
}

回读

byte[] bytes = new byte[(int) (new File(filename).length())];
try (FileInputstream in = new FileInputStream(filename)) {
in.read(bytes);
}

I have a file that contains xml and then plain text, so i cant read a file as a whole

您也不能将二进制写入文本文件。您可以使用 base64 对其进行编码。

Storing base64 data in XML?

关于java - 从文件读取时获取与写入文件不同的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36872813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com