Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PDF和Excel文件Base 64编码的方式和原因?_Java_Base64_Apache Commons Codec - Fatal编程技术网

Java PDF和Excel文件Base 64编码的方式和原因?

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

我读过的Base64编码的应用是将二进制数据或某些字符串转换为Base64格式。 但我知道一些文件(例如:PDF、Excel)本身是Base64编码的,它们甚至不能被相应的软件打开/支持

我的问题是:

  • 我们可以将整个文件编码到Base64中吗
  • 这是什么样的应用场景
  • 通过查看内容我们可以知道使用哪种解码器
  • (仅供参考:我已经阅读了wiki Base64)

    Base64 Java解码 我认为编码也可以通过这个包中的一些类来完成

    包裹是

    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编码以存储其某些对象。