package org.yeshi.utils;
|
|
import java.io.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.io.IOUtils;
|
|
public class FileUtil {
|
|
@SuppressWarnings("deprecation")
|
public static String getRealPath(HttpServletRequest request, String folderName) {
|
String f = request.getRealPath(folderName);
|
if (!new File(f).exists())
|
new File(f).mkdirs();
|
return f;
|
}
|
|
public static String getFileMD5(File file) throws IOException {
|
FileInputStream fis = new FileInputStream(file);
|
String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));
|
IOUtils.closeQuietly(fis);
|
return md5;
|
}
|
|
public static void deleteFileDir(File path) {
|
if (!path.exists())
|
return;
|
if (path.isFile()) {
|
path.delete();
|
return;
|
}
|
File[] files = path.listFiles();
|
for (int i = 0; i < files.length; i++) {
|
deleteFileDir(files[i]);
|
}
|
path.delete();
|
}
|
|
/**
|
* 将输入流存为本地文件
|
*
|
* @param inputStream
|
* @param path
|
* @return
|
* @throws IOException
|
*/
|
public static String saveAsFile(InputStream inputStream, String path) throws IOException {
|
if (!new File(path).exists()) {
|
new File(path).createNewFile();
|
}
|
|
FileOutputStream fileOut = new FileOutputStream(new File(path));
|
byte[] buf = new byte[1024 * 8];
|
while (true) {
|
int read = 0;
|
if (inputStream != null) {
|
read = inputStream.read(buf);
|
}
|
if (read == -1) {
|
break;
|
}
|
fileOut.write(buf, 0, read);
|
}
|
fileOut.close();
|
return path;
|
}
|
|
/**
|
* 获取缓存文件夹目录
|
*
|
* @return
|
*/
|
public static String getCacheDir() {
|
String os = System.getProperty("os.name");
|
if (os.toLowerCase().startsWith("win")) {
|
File f = new File("D:/cache");
|
if (!f.exists())
|
f.mkdirs();
|
return f.getPath();
|
} else {
|
File f = new File("/usr/local/cache");
|
if (!f.exists())
|
f.mkdirs();
|
return f.getPath();
|
}
|
}
|
|
|
/**
|
* 将输入流存为本地文件
|
*
|
* @param b
|
* @param path
|
* @return
|
* @throws IOException
|
*/
|
public static String saveAsFileByte(byte[] b, String path) throws IOException {
|
if (!new File(path).exists()) {
|
new File(path).createNewFile();
|
}
|
|
FileOutputStream fileOut = new FileOutputStream(path);
|
fileOut.write(b);
|
fileOut.flush();
|
fileOut.close();
|
return path;
|
}
|
|
|
/**
|
* 复制inputStream
|
* @param input
|
* @return
|
*/
|
public static ByteArrayOutputStream cloneInputStream(InputStream input) {
|
try {
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
byte[] buffer = new byte[1024];
|
int len;
|
while ((len = input.read(buffer)) > -1) {
|
baos.write(buffer, 0, len);
|
}
|
baos.flush();
|
return baos;
|
} catch (IOException e) {
|
e.printStackTrace();
|
return null;
|
}
|
}
|
}
|