Yub*_*raj 3 java pdf bytearray jersey
我试图byte[]
通过JSONObject
使用下面的代码获得价值,但我没有得到原始byte[]
价值。
JSONArray jSONArray = jSONObject.getJSONArray(JSONConstant.BYTE_ARRAY_LIST);
int len = jSONArray.length();
for (int i = 0; i < len; i++) {
byte[] b = jSONArray.get(i).toString().getBytes();
//Following line creates pdf file of this byte arry "b"
FileCreator.createPDF(b, "test PDF From Web Resource.pdf");
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码创建了pdf文件,但文件无法打开,即文件损坏。当我使用相同的类和方法创建文件时:
FileCreator.createPDF(b, "test PDF From Web Resource.pdf");
Run Code Online (Sandbox Code Playgroud)
在添加以下内容之前JSONObject
:
JSONObject jSONObject = new JSONObject();
jSONObject.put(JSONConstant.BYTE_ARRAY_LIST, bList);
Run Code Online (Sandbox Code Playgroud)
它创建文件,即我可以打开pdf文件并阅读其内容。
我做错了什么byte[]
,JSONObject
以便它创建损坏的文件?请指导我。我一直欢迎发表评论。谢谢。
最后,我在apache commons库的帮助下解决了我的问题。首先,我使用以下依赖性。
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.6</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我以前使用的技术对我来说是错误的(不确定其他)。以下是我如何解决问题的解决方案。
解:
我之前在JSONObject上添加了字节数组值,并存储为String。当我尝试从JSONObject获取到我的字节数组时,它返回String而不是我的原始字节数组。并且即使我使用以下命令也没有获得原始字节数组:
byte[] bArray=jSONObject.getString(key).toString().getBytes();
Run Code Online (Sandbox Code Playgroud)
现在,
首先,我将字节数组编码为字符串,然后将其保存在JSONObject上。见下文:
byte[] bArray=(myByteArray);
//Following is the code that encoded my byte array and kept on String
String encodedString = org.apache.commons.codec.binary.Base64.encodeBase64String(bArray);
jSONObject.put(JSONConstant.BYTE_ARRAY_LIST , encodedString);
Run Code Online (Sandbox Code Playgroud)
以及返回我的原始字节数组的代码:
String getBackEncodedString = jSONObject.getString(JSONConstant.BYTE_ARRAY_LIST);
//Following code decodes to encodedString and returns original byte array
byte[] backByte = org.apache.commons.codec.binary.Base64.decodeBase64(getBackEncodedString);
//Creating pdf file of this backByte
FileCreator.createPDF(backByte, "fileAfterJSONObject.pdf");
Run Code Online (Sandbox Code Playgroud)
而已。
归档时间: |
|
查看次数: |
17569 次 |
最近记录: |