import lombok.extern.log4j.Log4j2;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
@Log4j2
public class FileUtils {
public static String upload(MultipartFile file, String path) {
//获取文件名后缀
String fileLastType = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
//使用原文件名
String realPath = path + "/" + file.getOriginalFilename();
File dest = new File(realPath);
//判断文件父目录是否存在
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdir();
}
try {
//保存文件
file.transferTo(dest);
return newFileName + fileLastType;
} catch (IllegalStateException e) {
log.error(e);
return "error";
} catch (IOException e) {
log.error(e);
return "error";
}
}
public static void fromUrlDownloadFile(String fileUrl, String fileLocal) throws Exception {
URL url = new URL(fileUrl);
HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
urlCon.setConnectTimeout(6000);
urlCon.setReadTimeout(6000);
int code = urlCon.getResponseCode();
if (code != HttpURLConnection.HTTP_OK) {
throw new Exception("文件读取失败");
}
//读文件流
DataInputStream in = new DataInputStream(urlCon.getInputStream());
DataOutputStream out = new DataOutputStream(new FileOutputStream(fileLocal));
byte[] buffer = new byte[2048];
int count = 0;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
out.close();
in.close();
}
public static void saveJsonFile(String s, String name) {
File file = new File(name);
try {
//检查文件的目录是否存在,不存在创建
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
//验证文件是否存在,存在即删除
if (file.exists()) {
file.delete();
}
//创建文件
file.createNewFile();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(name)), "utf-8"));
bw.write(s);
bw.flush();
bw.close();
// fw.close();
} catch (Exception e) {
e.printStackTrace();
}
log.info("文件生成完毕:" + name);
}
public static String readFile(String filename) {
StringBuffer sbf = new StringBuffer();
try {
BufferedReader in = new BufferedReader(new FileReader(filename));
String str;
while ((str = in.readLine()) != null) {
sbf.append(str);
}
} catch (IOException e) {
log.error("读取文件异常:" + e.getMessage());
}
return sbf.toString();
}
public static void addContent(String message, String filename) {
File file = new File(filename);
try {
//检查文件的目录是否存在,不存在创建
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
//验证文件是否存在,不存在创建新的文件
if (!file.exists()) {
//创建文件
file.createNewFile();
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true), "utf-8"));
bw.write(message);
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}