zoukankan      html  css  js  c++  java
  • Java IO3 把一个图片写进txt,再写出还原图片

    package com.demo.zmz;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedWriter;
    import java.io.ByteArrayOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Base64;
    
    public class Base64Test {
    
    	public static void main(String[] args) {		
    		// 编码
    		encodeBase64();	
    		
    		// 解码	
    		dcodeBase64();
    	}
    	private static void dcodeBase64() {
    		// TODO Auto-generated method stub
    		try (BufferedInputStream in = new BufferedInputStream(new FileInputStream("a.txt"));
    				BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("aa.jpg"))) {
    			// RTFM 
    			//内存数组,输出流,写入buf用
    			ByteArrayOutputStream ramArray = new ByteArrayOutputStream();
    			
    			byte[] buf = new byte[1024*4];
    			int size;
    			while (-1 != (size = in.read(buf))) {
    				ramArray.write(buf, 0, size);
    			}
    			// 获得所有数据
    			byte[] data = ramArray.toByteArray();
    			//获取编码器-->返回字符串
    			byte[] img = Base64.getDecoder().decode(data);
    			
    			out.write(img);
    			System.out.println("ok");
    			
    		} catch (IOException e) {
    			
    		}
    	}
    	
    	private static void encodeBase64() {
    		
    		try (BufferedInputStream in = new BufferedInputStream(new FileInputStream("11111.jpg"));
    				BufferedWriter out = new BufferedWriter(new FileWriter("a.txt"))) {
    			// RTFM 
    			//内存数组,输出流,写入buf用
    			ByteArrayOutputStream ramArray = new ByteArrayOutputStream();
    			
    			byte[] buf = new byte[1024*4];
    			int size;
    			while (-1 != (size = in.read(buf))) {
    				ramArray.write(buf, 0, size);
    			}
    			// 获得所有数据
    			byte[] data = ramArray.toByteArray();
    			//获取编码器-->返回字符串
    			String s = Base64.getEncoder().encodeToString(data);
    			System.out.println(s);
    			
    			out.write(s);
    			
    		} catch (IOException e) {
    			
    		}
    	}
    }


    inputstream和outputstream是字节流,writer和reader是字符流

  • 相关阅读:
    亚马逊云IoT平台接入开发记录
    pip下载速度慢更换清华源试试
    gitlab回归上一次提交
    uos桌面壁纸存放路径
    python中json中的dump和dumps
    Python中的类中__dict__方法
    C++ | 数组反转的三种方法
    《C++Primer Plus》 | 复合类型
    pwn 中的函数 | 持续更新
    七月安恒DASCTF | 复现
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256599.html
Copyright © 2011-2022 走看看