我有一个带有 Base64 编码值的文本文件,我尝试解码该文本文件并将其保存为 PDF 格式。 下面是我的代码
File inputfile = new File('/Users/Downloads/DownloadedPDF.txt')
File outputfile = new File('/Users/Downloads/test64.pdf')
byte[] data
try {
FileInputStream fileInputStream = new FileInputStream(inputfile)
data = new byte[(int) inputfile.length()]
fileInputStream.read(data)
fileInputStream.close()
}catch(Exception e) {
e.getStackTrace()
}
//Decode the data
byte[] decoded = java.util.Base64.getDecoder().decode(data)
try {
FileOutputStream fileOutputStream = new FileOutputStream(outputfile)
//Write the decoded details to the output file [pdf format]
fileOutputStream.write(decoded)
fileOutputStream.flush()
fileOutputStream.close()
}catch(Exception e) {
e.getStackTrace()
}
在执行代码时,我收到以下错误。
java.lang.IllegalArgumentException: Illegal base64 character 3
at java_util_Base64$Decoder$decode$0.call(Unknown Source)
我使用 URL 解码器尝试了以下方法,但仍然收到相同的错误。
byte[] decoded = Base64.getUrlDecoder().decode(data)
从流中读取字节并不能保证它将读取您请求的“所有”字节。尝试改为 readNBytes()
。