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;
}
}