• java将jpg文件转化为base64字节(互转)


    package renew1;
    import java.io.FileWriter;   
    import java.io.File;  
    import java.io.IOException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import org.apache.commons.codec.binary.Base64;
    //https://www.cnblogs.com/jyiqing/p/10256178.html
    
    public class BaseUtil {
    	public static String filePath = "D:\test_1.txt";
    	
    	public static void main(String[] args) throws Exception {  
    		
    		byte[] b1 = image2Bytes("D:\1.jpg"); //path是绝对路径	
    //		System.out.println(new String(b1));
    //		System.out.println("*图片的字节数组 = " + Arrays.toString(b1));
    		
    		byte[] b2 = Base64.encodeBase64(b1);
    		
    //		System.out.println("编码后的字节数组 = "+Arrays.toString(b2));
    //		System.out.println("编码后的字节数组对应的ascil码值 = "+new String(b2));
    		
    		saveAsFileWriter(new String(b2));//将base64编码的数据保存到文件中
    		
    //		byte[] b3 = Base64.decodeBase64(b2);	
    //		System.out.println("解码后的字节数组 = "+Arrays.toString(b3));		
    //		buff2Image(b3, "D:\2.jpg");
    
    	  }    
    	  
    	  public static void saveAsFileWriter(String content) {
    	        FileWriter fwriter = null;
    	        try {
    	            // true表示不覆盖原来的内容,而是加到文件的后面。若要覆盖原来的内容,直接省略这个参数就好
    	            fwriter = new FileWriter(filePath, true);
    	            fwriter.write(content);
    	        } catch (IOException ex) {
    	            ex.printStackTrace();
    	        } finally {
    	            try {
    	                fwriter.flush();
    	                fwriter.close();
    	            } catch (IOException ex) {
    	                ex.printStackTrace();
    	            }
    	        }
    	    }
    	
    	static void buff2Image(byte[] b,String tagSrc) throws Exception {
            FileOutputStream fout = new FileOutputStream(tagSrc);
            //将字节写入文件
            fout.write(b);
            fout.close();
            
        }
    
    	  public static byte[] image2Bytes(String imgSrc) throws Exception {
    	      FileInputStream fin = new FileInputStream(new File(imgSrc));
    	      //可能溢出,简单起见就不考虑太多,如果太大就要另外想办法,比如一次传入固定长度byte[]
    	      byte[] bytes  = new byte[fin.available()];
    	      //将文件内容写入字节数组,提供测试的case
    	      fin.read(bytes);
    
    	      fin.close();
    	      return bytes;
    	  }
    	  	  
    }
    

      

  • 相关阅读:
    XPath使用示例
    CSS3中的弹性布局——"em"的用法
    Sublime Text3快捷键实用总结
    学习笔记——关于HTML(含HTML5)的块级元素和行级(内联)元素总结
    JavaScript中的伪数组理解
    深入理解浏览器兼容性模式
    javascript 中使用instanceof需要注意的一点
    用人工智能学习,凡亿推出PCB问题解答智能搜索机器人:pcb助手
    Altium中坐标的导出及利用坐标快速布局
    Altium中Logo的导入方法及大小调整
  • 原文地址:https://www.cnblogs.com/xiaofeng91/p/15497626.html
Copyright © 2020-2023  润新知