| | |
| | | package org.yeshi.utils;
|
| | |
|
| | | 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.io.*;
|
| | |
|
| | | import javax.servlet.http.HttpServletRequest;
|
| | |
|
| | |
| | |
|
| | | 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;
|
| | | }
|
| | | @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 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();
|
| | | }
|
| | | 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();
|
| | | }
|
| | | /**
|
| | | * 将输入流存为本地文件
|
| | | *
|
| | | * @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;
|
| | | }
|
| | | 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();
|
| | | }
|
| | | }
|
| | | /**
|
| | | * 获取缓存文件夹目录
|
| | | *
|
| | | * @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 inputStream
|
| | | * @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); |
| | | /**
|
| | | * 将输入流存为本地文件
|
| | | *
|
| | | * @param inputStream
|
| | | * @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;
|
| | | }
|
| | | 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;
|
| | | }
|
| | | }
|
| | | }
|