import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import javax.activation.MimetypesFileTypeMap;
import org.springframework.web.multipart.MultipartFile;
public class FileUtil {
/**
* ファイルを保存する
* @param file MultipartFile 直接从form传过来的文件
* @param fileUploadPath 目标文件夹,e.g."C:/test/"
* @param fileName 新文件名
*/
public static void saveUploadFile(MultipartFile file, String fileUploadPath, String fileName) throws IOException {
byte[] bytes = file.getBytes();
mkFileDir(fileUploadPath);
Path tmpFilePath = Paths.get(fileUploadPath + fileName);
Files.write(tmpFilePath, bytes);
}
/**
* 生成文件目录
*/
public static void mkFileDir(String path) {
File filePath = new File(path);
if (!filePath.exists() || !filePath.isDirectory()) {
filePath.mkdirs();
}
}
/**
* 删除文件
*/
public static void deleteFile(String filePathAndName) {
File file = new File(filePathAndName);
file.delete();
}
/**
* 删除path目录下的多个文件
*/
public static void deleteDir(String path, String fileName) {
List<String> fileList = Arrays.asList(fileName.split(";"));
File file = new File(path);
if (file.exists()) {
String[] content = file.list();
for (String name : content) {
if (fileList .contains(name)) {
File temp = new File(path, name);
temp.delete();
}
}
}
}
/**
* 复制文件
*/
public static void copyFile(String oldFileFullPath, String newFileFullPath) throws IOException {
File oldFile = new File(oldFileFullPath);
File newFile = new File(newFileFullPath);
String newFolderPath = newFileFullPath.substring(0, newFileFullPath.lastIndexOf("/"));
mkFileDir(newFolderPath);
InputStream input = null;
OutputStream output = null;
try {
input = new FileInputStream(oldFile);
output = new FileOutputStream(newFile);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = input.read(buf)) > 0) {
output.write(buf, 0, bytesRead);
}
} finally {
input.close();
output.close();
}
}
/**
* 移动文件
*/
public static void moveFile(String oldFileFullPath, String newFileFullPath) throws IOException {
copyFile(oldFileFullPath, newFileFullPath);
deleteFile(oldFileFullPath);
}
/**
* 获取文件名(不包括扩展名)
*/
public static String getFileNameWithoutExtension(String name) {
if (name.lastIndexOf(".") > 0) {
name = name.substring(0, name.lastIndexOf("."));
}
return name;
}
/**
* 获取文件扩展名
*/
public static String getExtensionName(String name) {
if (name.lastIndexOf(".") > 0) {
name = name.substring(name.lastIndexOf(".") + 1);
}
return name;
}
/**
* 获取Content type
*/
public static String getContentType(File file) {
String contentType = null;
try {
contentType = new MimetypesFileTypeMap().getContentType(file);
} catch (Exception e) {
e.printStackTrace();
}
return contentType;
}
}
【Java】FileUtil.java
最新推荐文章于 2022-05-16 13:54:00 发布