io.github.wujun728.file.utils.FileUtils Maven / Gradle / Ivy
The newest version!
package io.github.wujun728.file.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
public class FileUtils {
/**
* 判断文件是否存在,不存在就创建
* @param file
*/
public static void createFile(File file) {
if (file.exists()) {
System.out.println("File exists");
} else {
System.out.println("File not exists, create it ...");
//getParentFile() 获取上级目录(包含文件名时无法直接创建目录的)
if (!file.getParentFile().exists()) {
System.out.println("not exists");
//创建上级目录
file.getParentFile().mkdirs();
}
try {
//在上级目录里创建文件
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//file 转换为 MultipartFile
private MultipartFile getMulFileByFile(File file)
{
FileItemFactory factory = new DiskFileItemFactory(16, null);
String textFieldName = "textField";
int num = file.getAbsolutePath().lastIndexOf(".");
String extFile =FilenameUtils.getExtension(file.getAbsolutePath());// filePath.substring(num);
FileItem item = factory.createItem(textFieldName, "text/plain", true,
"MyFileName" + extFile);
File newfile = file;
int bytesRead = 0;
byte[] buffer = new byte[8192];
try
{
FileInputStream fis = new FileInputStream(newfile);
OutputStream os = item.getOutputStream();
while ((bytesRead = fis.read(buffer, 0, 8192))
!= -1)
{
os.write(buffer, 0, bytesRead);
}
os.close();
fis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
MultipartFile mfile = new CommonsMultipartFile(item);
return mfile;
}
//file 转换为 MultipartFile
private MultipartFile getMulFileByPath(String filePath)
{
FileItemFactory factory = new DiskFileItemFactory(16, null);
String textFieldName = "textField";
int num = filePath.lastIndexOf(".");
String extFile = filePath.substring(num);
FileItem item = factory.createItem(textFieldName, "text/plain", true,
"MyFileName" + extFile);
File newfile = new File(filePath);
int bytesRead = 0;
byte[] buffer = new byte[8192];
try
{
FileInputStream fis = new FileInputStream(newfile);
OutputStream os = item.getOutputStream();
while ((bytesRead = fis.read(buffer, 0, 8192))
!= -1)
{
os.write(buffer, 0, bytesRead);
}
os.close();
fis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
MultipartFile mfile = new CommonsMultipartFile(item);
return mfile;
}
/**
* MultipartFile 转换成File
*
* @param multfile 原文件类型
* @return File
* @throws IOException
*/
public static File multipartToFile(MultipartFile multfile) {
CommonsMultipartFile cf = (CommonsMultipartFile)multfile;
//这个myfile是MultipartFile的
DiskFileItem fi = (DiskFileItem) cf.getFileItem();
File file = fi.getStoreLocation();
return file;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy