Java 从字符串到字节数组再到文件的转换
我收到一个作为字符串的图像数据作为响应,我将其转换为字节[],然后写入pdf文件,但无法以pdf格式打开,因为它显示文件已损坏或未正确解码。当我打开文本时,我看到的字符串数据与我收到的响应完全相同。请看下面并纠正我Java 从字符串到字节数组再到文件的转换,java,fileoutputstream,Java,Fileoutputstream,我收到一个作为字符串的图像数据作为响应,我将其转换为字节[],然后写入pdf文件,但无法以pdf格式打开,因为它显示文件已损坏或未正确解码。当我打开文本时,我看到的字符串数据与我收到的响应完全相同。请看下面并纠正我 String response = "AAAAAAAAA......AAAAA=="; /*byte[] imageByteArray = response.getBytes(); */ /* decode string */ byte[] imageByteArray = B
String response = "AAAAAAAAA......AAAAA==";
/*byte[] imageByteArray = response.getBytes(); */
/* decode string */
byte[] imageByteArray = Base64.decodeBase64(response);
FileOutputStream imageOutFile = new FileOutputStream("D:/output.pdf");
imageOutFile.write(imageByteArray, 0, imageByteArray.length);
imageInFile.close();
请查找:无法直接使用java.io类写入PDF。 您需要使用像iText这样的API将数据写入PDF 请查看以下网址:
您需要一个库来完成这项工作,因为PDF有自己的内部格式。查看iText或类似的库。如果您得到一个图像作为响应,您应该将其保存为原样,一个图像而不是pdf。还要注意,字符串末尾的
==
闻起来像base 64 encoding。您可以共享整个字符串吗?它看起来像什么?或者更好,将内容转储到一个文件中并共享该文件。在我的例子中,它使用输出流成功地编写了一个pdf文件。