gpt4 book ai didi

java - 如何将字符串格式的字节数组转换为字节数组?

转载 作者:行者123 更新时间:2023-11-30 06:22:47 30 4
gpt4 key购买 nike

我创建了一个文件的字节数组。

    FileInputStream fileInputStream=null;
File file = new File("/home/user/Desktop/myfile.pdf");
byte[] bFile = new byte[(int) file.length()];
try {
fileInputStream = new FileInputStream(file);
fileInputStream.read(bFile);
fileInputStream.close();
}catch(Exception e){
e.printStackTrace();
}

现在,我有一个 API,它需要一个 json 输入,我必须将上面的字节数组放入字符串格式。在读取字符串格式的字节数组后,我需要再次将其转换回字节数组。 所以,帮我找一下;

1) 如何将字节数组转换为字符串,然后再转换回相同的字节数组?

最佳答案

byte[] <-> String 转换的一般问题很容易解决,一旦您知道已用于将给定文本“序列化”为字节流的实际字符集(编码),或者对等组件接受给定的字节流作为文本输入 - 请参阅已经给出的完全有效的答案。我已经看到很多由于缺乏对企业 Java 项目中字符集(和一般的文本编码)的理解而导致的问题,即使是经验丰富的软件开发人员也是如此,所以我真的建议深入研究这个非常有趣的话题。如果字符编码信息以某种方式表示文本,那么将字符编码信息作为某种“元”信息与二进制数据一起保存通常是关键。因此,例如 XML 文件中的 header ,甚至有时在 Apache htdocs 内容等中看到的后缀作为文件名的一部分,更不用说将任何类型的元数据添加到文件的特定于文件系统的方法。此外,当通过 http 进行通信时,Content-Type header 字段通常包含额外的字符集信息,以允许正确解释实际内容。

但是,由于在您的示例中您阅读了一个 PDF 文件,所以我不确定您是否真的可以期望纯文本数据,无论任何字符编码如何。

因此在这种情况下 - 根据您正在处理的应用程序的其余部分 - 您可能希望在 JSON 字符串中传输二进制数据。这样做的一种常见方法是将二进制数据转换为 Base64,并在传输后从接收到的 Base64 字符串中恢复二进制数据。 How do I convert a byte array to Base64 in Java?是此类任务的良好起点。

关于java - 如何将字符串格式的字节数组转换为字节数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18911525/

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