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是字符流