File 文件 byte[] 字節 Base64 互轉

   /**
     * 通過文件路徑將文件轉成Base64編碼
     * @param path 文件路徑
     * @return base64結果
     */
    public static String imageToBase64(String path) {
        // 將圖片文件轉化爲字節數組字符串,並對其進行Base64編碼處理
        byte[] data = null;
        // 讀取圖片字節數組
        try {
            InputStream in = new FileInputStream(path);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 對字節數組Base64編碼
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);// 返回Base64編碼過的字節數組字符串
    }

    /**
     * 將圖片文件轉成Base64編碼
     * @param file 文件
     * @return base64碼
     */
     public static imageToBase64(File file) {
        // 將圖片文件轉化爲字節數組字符串,並對其進行Base64編碼處理
        byte[] data = null;
        // 讀取圖片字節數組
        try {
            InputStream in = new FileInputStream(file);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 對字節數組Base64編碼
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);// 返回Base64編碼過的字節數組字符串
    }

    /**
     * byte[] 字節轉Base64編碼
     * @param bytes 數組字節
     * @return base64碼
     */
     public static stringBase64(byte[] bytes){
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(bytes);// 返回Base64編碼過的字節數組字符串
    }

    /**
     * 文件轉byte[] 數組
     * @param file 文件
     * @return byte[]
     */
    public static byte[] imgToByte(File file) {
        byte[] data = null;
        try {
            InputStream in = new FileInputStream(file);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }

   /**
     * 對字節數組字符串進行Base64解碼並生成圖片
     * @param imgStr base64字符串
     * @param imgFilePath 指定輸出路徑
     * @return 布爾值
     */
	public static boolean GenerateImage(String imgStr, String imgFilePath) { 
        if (imgStr == null) // 圖像數據爲空   
            return false;   
        BASE64Decoder decoder = new BASE64Decoder();   
        try {   
            // Base64解碼   
            byte[] bytes = decoder.decodeBuffer(imgStr);   
            for (int i = 0; i < bytes.length; ++i) {   
                if (bytes[i] < 0) {// 調整異常數據   
                    bytes[i] += 256;   
                }   
            }   
            // 生成jpeg圖片   
            OutputStream out = new FileOutputStream(imgFilePath);   
            out.write(bytes);   
            out.flush();   
            out.close();   
            return true;   
        } catch (Exception e) {   
            return false;   
        }   
    }

    /**
     * 對字節數組字符串進行Base64解碼
     * @param imgStr base64字符串
     * @return byte[]
     */
	public static byte[] changeBase64(String imgStr) { 
        String  base = "";
        BASE64Decoder decoder = new BASE64Decoder();
        byte[] bytes = null;
        try {   
            // Base64解碼   
            bytes = decoder.decodeBuffer(imgStr);   
            for (int i = 0; i < bytes.length; ++i) {   
                if (bytes[i] < 0) {// 調整異常數據   
                    bytes[i] += 256;   
                }   
            }   
            // 生成jpeg圖片
        } catch (Exception e) {   
           e.printStackTrace();
        }  
        return bytes;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章