- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个文件的字节数组。
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/
我是一名优秀的程序员,十分优秀!