weaver-hrm-salary/src/com/engine/salary/util/FileUtils.java

89 lines
2.9 KiB
Java
Raw Normal View History

2025-02-06 16:11:39 +08:00
package com.engine.salary.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
public class FileUtils {
private static final String COPY_FILE_SUFFIX = "_副本";
/**
* 将输入流写入文件
* @param in 输入流
* @param path 输出文件的路径
* @param fileName 输出文件的名称
*
* */
public static void writeFile(InputStream in , String path , String fileName) throws FileNotFoundException {
FileOutputStream outputStream = new FileOutputStream("");
}
/**
* 给定一个目录和文件若该目录存在名称相同的文件则返回一个可用的副本文件名否则直接返回输入的文件名
* @param path 文件的目录
* @param fileName 文件名
* @return 可用的文件名
* */
public static String getAvailableName(String path ,String fileName){
File filePath = new File(path);
String suffix = fileName.substring(fileName.lastIndexOf("."));
File[] files = filePath.listFiles( f -> f.getName().endsWith(suffix) );
if ( Objects.isNull(files) ) return fileName;
Set<String> fileNameSet = new HashSet<>();
for (File file: files ) {
fileNameSet.add(file.getName().substring(0 , file.getName().lastIndexOf(".")));
}
boolean isExist = true;
int count = 1;
String tempFileName = fileName.substring(0,fileName.lastIndexOf("."));
String tempFileName1 = tempFileName;
while(isExist){
if (fileNameSet.contains(tempFileName)){
tempFileName = tempFileName1 + COPY_FILE_SUFFIX + count++;
}else{
isExist = false;
}
}
return tempFileName + suffix;
}
/**
* 给定一个文件的完整路径若该文件已经存在则返回一个可用的副本文件名否则直接返回输入的文件名
* @param fullPath 文件的完整路径
* @return 可用的文件名
* */
public static String getAvailableName( String fullPath ){
File file = new File(fullPath);
if ( !file.isFile() ) throw new RuntimeException( String.format("not a file [%s].",fullPath));
return getAvailableName( file.getParent() ,file.getName() );
}
/**
* 给定一个文件的完整路径若该文件已经存在则返回一个完整可用的副本文件名否则直接返回输入的文件名
* @param fullPath 文件的完整路径
* @return 完整可用的文件名
* */
public static String getAvailableFullName( String fullPath ){
File file = new File(fullPath);
if ( !file.isFile() ) throw new RuntimeException( String.format("not a file [%s].",fullPath));
return file.getParent() + File.separator + getAvailableName(fullPath);
}
}