Base 64:非法的base64字符3异常

问题描述 投票:0回答:1

我有一个带有 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)
java base64 decode base64url
1个回答
0
投票

从流中读取字节并不能保证它将读取您请求的“所有”字节。尝试改为 readNBytes()

    

© www.soinside.com 2019 - 2024. All rights reserved.