File转成Base64编码
private static String fileToBase64() {
File file = new File("F:/111.jpg");
if (!file.exists()) {
return null;
}
String context = null;
try {
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
context = Base64.getEncoder().encodeToString(buffer).replaceAll("\r|\n", "");
} catch (Exception e) {
e.printStackTrace();
}
return context;
}
Base64编码转成File
private static void base64ToFile(String fileContext, String fileType) {
if (Strings.isBlank(fileContext)) {
return;
}
final String path = "D:/images/" + fileStorageLocation(fileType);
final Base64.Decoder decoder = Base64.getDecoder();
File file = new File(path);
FileUtil.touch(file);
try (OutputStream out = new FileOutputStream(file)) {
out.write(decoder.decode(fileContext));
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
private static String fileStorageLocation(String fileType) {
StringJoiner joiner = new StringJoiner("/");
joiner.add(getCurrentYear());
joiner.add(getCurrentMonth());
joiner.add(getCurrentDay());
joiner.add(UUID.randomUUID().toString() + "." + fileType);
return joiner.toString();
}
private static String getCurrentYear() {
return String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
}
private static String getCurrentMonth() {
final int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
if (month < 10) {
return "0" + month;
}
return String.valueOf(month);
}
private static String getCurrentDay() {
final int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
if (day < 10) {
return "0" + day;
}
return String.valueOf(day);
}
File转成Base64编码 Base64编码转成File【全代码】
import cn.hutool.core.io.FileUtil;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.apache.logging.log4j.util.Strings;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Base64;
import java.util.Calendar;
import java.util.StringJoiner;
import java.util.UUID;
public class FileUtils {
public static void main(String[] args) {
final FileDTO fileDTO = fileToBase64();
base64ToFile(fileDTO.getContext(), fileDTO.getType());
}
private static FileDTO fileToBase64() {
File file = new File("F:/111.jpg");
if (!file.exists()) {
return null;
}
String context = null;
try {
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
context = Base64.getEncoder().encodeToString(buffer).replaceAll("\r|\n", "");
} catch (Exception e) {
e.printStackTrace();
}
return FileDTO.builder()
.type(file.getName().split("\\.")[1])
.context(context)
.build();
}
private static void base64ToFile(String fileContext, String fileType) {
if (Strings.isBlank(fileContext)) {
return;
}
final String path = "D:/images/" + fileStorageLocation(fileType);
final Base64.Decoder decoder = Base64.getDecoder();
File file = new File(path);
FileUtil.touch(file);
try (OutputStream out = new FileOutputStream(file)) {
out.write(decoder.decode(fileContext));
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
private static String fileStorageLocation(String fileType) {
StringJoiner joiner = new StringJoiner("/");
joiner.add(getCurrentYear());
joiner.add(getCurrentMonth());
joiner.add(getCurrentDay());
joiner.add(UUID.randomUUID().toString() + "." + fileType);
return joiner.toString();
}
private static String getCurrentYear() {
return String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
}
private static String getCurrentMonth() {
final int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
if (month < 10) {
return "0" + month;
}
return String.valueOf(month);
}
private static String getCurrentDay() {
final int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
if (day < 10) {
return "0" + day;
}
return String.valueOf(day);
}
@Setter
@Getter
@Builder
private static class FileDTO {
private String type;
private String context;
}
}
End