Java PDF和Excel文件Base 64编码的方式和原因?
我读过的Base64编码的应用是将二进制数据或某些字符串转换为Base64格式。 但我知道一些文件(例如:PDF、Excel)本身是Base64编码的,它们甚至不能被相应的软件打开/支持 我的问题是:Java PDF和Excel文件Base 64编码的方式和原因?,java,base64,apache-commons-codec,Java,Base64,Apache Commons Codec,我读过的Base64编码的应用是将二进制数据或某些字符串转换为Base64格式。 但我知道一些文件(例如:PDF、Excel)本身是Base64编码的,它们甚至不能被相应的软件打开/支持 我的问题是: 我们可以将整个文件编码到Base64中吗 这是什么样的应用场景 通过查看内容我们可以知道使用哪种解码器 (仅供参考:我已经阅读了wiki Base64)Base64 Java解码 我认为编码也可以通过这个包中的一些类来完成 包裹是 import org.apache.commons.codec.b
import org.apache.commons.codec.binary.Base64;
逻辑是
String filepath = "C:\\Users\\sandeep\\somefile";
String encodedString = null;
try {
File file=new File(filepath);
FileReader fr = new FileReader(file);
BufferedReader reader = new BufferedReader(fr);
while ((encodedString = reader.readLine()) != null) {
byte[] binOfEncoded = Base64.decodeBase64(encodedString.getBytes());
System.out.println("Base64 Decoded String : " + binOfEncoded);
}
} catch (IOException x) {
System.err.format("IOException: %s%n", x);
}
1) 这很容易回答。当然,我们可以用base64对整个文件进行编码。2) -伊什。当您需要在7位介质上传输8位二进制文件时(例如,在ASCII模式下通过FTP传输非文本文件时,或在每封邮件发送二进制文件时),就需要这样做。(邮件只支持文本,FTP默认为7位,以节省1/8的带宽。这在300位调制解调器时非常有用)。PDF不是Base64编码的(编码后它将不再是有效的PDF),它支持Base-64编码以存储其某些对象。