download:Java工程师高薪训练营

*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */

package datei.steuern;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*

  • @author s.watson
    */

public class FileTools {

public FileTools() {

}

/**

  • formatPath 本义文件目录
    *
  • @param path
  • @return
    */

public static String formatPath(String path) {

return path.replaceAll("\\\\", "/");

}

/**

  • combainPath文件门路合并
    *
  • @param eins
  • @param zwei
  • @return
    */

private static String combainPath(String eins, String zwei) {

String dori = "";eins = null == eins ? "" : formatPath(eins);zwei = null == zwei ? "" : formatPath(zwei);if (!eins.endsWith("/") && zwei.indexOf("/") != 0) {  dori = eins + "/" + zwei;} else {  dori = (eins + zwei).replaceAll("//", "/");}return dori;

}

/**

  • list2Array 列表转换数组
    *
  • @param list
  • @return
    */

private static String[] list2Array(List list) {

String array[] = (String[]) list.toArray(new String[list.size()]);return array;

}

/**

  • cp 复制文件
    *
  • @param source
  • @param destination
  • @param loop
  • @return
    */

public static List<File> cp(String source, String destination, boolean loop) {

List<File> list = new ArrayList();try {  File srcFile = new File(source);  File desFile = new File(destination);  list.addAll(cp(srcFile, desFile, loop));} catch (Exception ex) {  j2log(null, null, ex);}return list;

}

/**

  • cp 复制文件
    *
  • @param source
  • @param destination
  • @param loop
  • @return
    */

public static List<File> cp(File source, File destination, boolean loop) {

List<File> list = new ArrayList();try {  if (!source.exists() || source.isDirectory()) {    throw new FileNotFoundException();  }  list.add(cp(source, destination));  if (loop) {    String[] subFile = source.list();    for (String subPath : subFile) {      String src = combainPath(source.getPath(), subPath);//子文件原文件门路      String des = combainPath(destination.getPath(), subPath);//子文件指标门路      File subfile = new File(src);      if (subfile.isFile()) {        list.add(cp(src, des));      } else if (subfile.isDirectory() && loop) {        list.addAll(cp(src, des, loop));      }    }  }} catch (Exception ex) {  j2log(null, null, ex);}return list;

}

/**

  • cp 单文件复制文件
    *
  • @param source
  • @param destination
  • @return
    */

public static File cp(String source, String destination) {

File desFile = null;try {  File srcFile = new File(source);  desFile = new File(destination);  desFile = cp(srcFile, desFile);} catch (Exception ex) {  j2log(null, null, ex);}return desFile;

}

/**

  • cp 单文件复制文件
    *
  • @param source
  • @param destination
  • @return
    */

public static File cp(File source, File destination) {

FileInputStream in = null;FileOutputStream out = null;FileChannel inc = null;FileChannel outc = null;try {  if (!source.exists() || source.isDirectory()) {    throw new FileNotFoundException();  }  if (source.getPath().equals(destination.getPath())) {    return source;  }  long allbytes = du(source, false);  if (!destination.exists()) {    destination.createNewFile();  }  in = new FileInputStream(source.getPath());  out = new FileOutputStream(destination);  inc = in.getChannel();  outc = out.getChannel();  ByteBuffer byteBuffer = null;  long length = 2097152;//根本大小,默认2M  long _2M = 2097152;  while (inc.position() < inc.size()) {    if (allbytes > (64 * length)) {//如果文件大小大于128M 缓存改为64M      length = 32 * _2M;    } else if (allbytes > (32 * length)) {//如果文件大小大于64M 缓存改为32M      length = 16 * _2M;    } else if (allbytes > (16 * length)) {//如果文件大小大于32M 缓存改为16M      length = 8 * _2M;    } else if (allbytes > (8 * length)) {//如果文件大小大于16M 缓存改为8M      length = 4 * _2M;    } else if (allbytes > (4 * length)) {//如果文件大小大于8M 缓存改为4M      length = 2 * _2M;    } else if (allbytes > (2 * length)) {//如果文件大小大于4M 缓存改为2M      length = _2M;    } else if (allbytes > (length)) {//如果文件大小大于2M 缓存改为1M      length = _2M / 2;    } else if (allbytes < length) {//如果文件小于根本大小,间接输入      length = allbytes;    }    allbytes = inc.size() - inc.position();    byteBuffer = ByteBuffer.allocateDirect((int) length);    inc.read(byteBuffer);    byteBuffer.flip();    outc.write(byteBuffer);    outc.force(false);  }} catch (Exception ex) {  j2log(null, null, ex);} finally {  try {    if (null != inc) {      inc.close();    }    if (null != outc) {      outc.close();    }    if (null != in) {      in.close();    }    if (null != out) {      out.close();    }  } catch (Exception ex) {    j2log(null, null, ex);  }}return destination;

}

/**

  • rename 文件重命名
    *
  • @param filePath
  • @param from
  • @param to
  • @return
    */

public static File rename(String filePath, String from, String to) {

File newFile = null;try {  File oldFile = new File(combainPath(filePath, from));  newFile = new File(combainPath(filePath, to));  rename(newFile, oldFile);} catch (Exception ex) {  j2log(null, null, ex);}return newFile;

}

/**

  • rename 文件重命名
    *
  • @param to
  • @param from
  • @return
    */

public static File rename(File from, File to) {

try {  String newPath = to.getPath();  String oldPath = from.getPath();  if (!oldPath.equals(newPath)) {    if (!to.exists()) {      from.renameTo(to);    }  }} catch (Exception ex) {  j2log(null, null, ex);}return to;

}

/**

  • mv 挪动文件
    *
  • @param fileName
  • @param source
  • @param destination
  • @param cover
    */

public static void mv(String fileName, String source, String destination, boolean cover) {

try {  if (!source.equals(destination)) {    File oldFile = new File(combainPath(source, fileName));    File newFile = new File(combainPath(destination, fileName));    mv(oldFile, newFile, cover);  }} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • mv 挪动文件
    *
  • @param source
  • @param destination
  • @param cover
    */

public static void mv(String source, String destination, boolean cover) {

try {  if (!source.equals(destination)) {    File oldFile = new File(source);    File newFile = new File(destination);    mv(oldFile, newFile, cover);  }} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • mv 挪动文件
    *
  • @param source
  • @param destination
  • @param cover
    */

public static void mv(File source, File destination, boolean cover) {

try {  if (!source.exists()) {    throw new FileNotFoundException();  }  StringBuilder fileName = new StringBuilder(source.getName());  if (!cover && source.getPath().equals(destination.getPath())) {    if (fileName.indexOf(".") > 0) {      fileName.insert(fileName.lastIndexOf("."), "_正本");    } else {      fileName.append("_正本");    }    cp(source, new File(combainPath(source.getParent(), fileName.toString())));  } else {    source.renameTo(destination);  }} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • extensions 获取文件扩展名信息
    *
  • @param filePath
  • @param fileName
  • @return
    */

private static String[] extensions(String filePath, String fileName) {

String[] extension = {};try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  extensions(file);} catch (Exception ex) {  j2log(null, null, ex);}return extension;

}

/**

  • extensions 获取文件扩展名信息
    *
  • @param fullPath
  • @return
    */

private static String[] extensions(String fullPath) {

String[] extension = {};try {  File file = new File(fullPath);  extensions(file);} catch (Exception ex) {  j2log(null, null, ex);}return extension;

}

/**

  • extensions 获取文件扩展名信息
    *
  • @param file
  • @return
    */

private static String[] extensions(File file) {

String[] extension = {};try {  if (file.isFile()) {    String fileName = file.getName();    if (fileName.lastIndexOf(".") >= 0) {      int lastIndex = fileName.lastIndexOf(".");      extension[0] = String.valueOf(lastIndex);//扩展名的“.”的索引      extension[1] = fileName.substring(lastIndex + 1);//扩展名      extension[2] = fileName.substring(0, lastIndex);//文件名    }  }} catch (Exception ex) {  j2log(null, null, ex);}return extension;

}

/**

  • ls 遍历文件
    *
  • @param filePath
  • @param loop
  • @return
    */

public static List<File> ls(String filePath, boolean loop) {

List<File> list = new ArrayList();try {  File file = new File(filePath);  list.addAll(ls(file, loop));} catch (Exception ex) {  j2log(null, null, ex);}return list;

}

/**

  • ls 遍历文件
    *
  • @param file
  • @param loop
  • @return
    */

public static List<File> ls(File file, boolean loop) {

List<File> list = new ArrayList();try {  list.add(file);  if (!file.isDirectory()) {    list.add(file);  } else if (file.isDirectory()) {    File[] subList = file.listFiles();    subList = filesSort(subList, true);    for (File subFile : subList) {      if (subFile.isDirectory() && loop) {        list.addAll(ls(subFile.getPath(), loop));      } else {        list.add(subFile);      }    }  }} catch (Exception ex) {  j2log(null, null, ex);}return list;

}

/**

  • filesSort 文件排序(默认升序)
    *
  • @param parentPath
  • @param subList
  • @return
    */

private static File[] filesSort(File[] inFiles, boolean asc) {

List<String> files = new ArrayList();List<String> dirs = new ArrayList();for (File subFile : inFiles) {  if (subFile.isDirectory()) {    dirs.add(subFile.getPath());  } else if (subFile.isFile()) {    files.add(subFile.getPath());  }}String[] fileArray = {};if (files.size() > 0) {  fileArray = list2Array(files);  Arrays.sort(fileArray);  if (!asc) {    Arrays.sort(fileArray, Collections.reverseOrder());  }}String[] dirArray = {};if (dirs.size() > 0) {  dirArray = list2Array(dirs);  Arrays.sort(dirArray);  if (!asc) {    Arrays.sort(dirArray, Collections.reverseOrder());  }}return concat2FileArray(fileArray, dirArray);

}

/**

  • concat2FileArray 合并文件数组
    *
  • @param old1
  • @param old2
  • @return
    */

private static File[] concat2FileArray(String[] old1, String[] old2) {

File[] newArray = new File[old1.length + old2.length];for (int i = 0, n = old1.length; i < n; i++) {  newArray[i] = new File(old1[i]);}for (int i = 0, j = old1.length, n = (old1.length + old2.length); j < n; i++, j++) {  newArray[j] = new File(old2[i]);}return newArray;

}

/**

  • read 读取文本文件
    *
  • @param filePath
  • @param fileName
  • @param charset
  • @return
    */

public static StringBuilder read(String filePath, String fileName, String charset) {

StringBuilder sb = new StringBuilder();try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  sb.append(FileTools.tail(file, false, 0, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • read 读取文本文件
    *
  • @param fullPath
  • @param charset
  • @return
    */

public static StringBuilder read(String fullPath, String charset) {

StringBuilder sb = new StringBuilder();try {  File file = new File(fullPath);  sb.append(FileTools.tail(file, false, 0, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • read 读取文本文件
    *
  • @param file
  • @param charset
  • @return
    */

public static StringBuilder read(File file, String charset) {

StringBuilder sb = new StringBuilder();try {  sb.append(FileTools.tail(file, false, 0, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • find 读取文本文件指定行
    *
  • @param filePath
  • @param fileName
  • @param line
  • @param charset
  • @return
    */

public static StringBuilder find(String filePath, String fileName, int line, String charset) {

StringBuilder sb = new StringBuilder();try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  sb.append(FileTools.tail(file, true, line, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • find 读取文本文件指定行
    *
  • @param fullPath
  • @param line
  • @param charset
  • @return
    */

public static StringBuilder find(String fullPath, int line, String charset) {

StringBuilder sb = new StringBuilder();try {  File file = new File(fullPath);  sb.append(FileTools.tail(file, true, line, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • find 读取文本文件指定行
    *
  • @param file
  • @param line
  • @param charset
  • @return
    */

public static StringBuilder find(File file, int line, String charset) {

StringBuilder sb = new StringBuilder();try {  sb.append(FileTools.tail(file, true, line, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • tail 读取文本文件
    *
  • @param filePath
  • @param fileName
  • @param charset
  • @param find
  • @param line
  • @return
    */

public static StringBuilder tail(String filePath, String fileName, boolean find, int line, String charset) {

StringBuilder sb = new StringBuilder();try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  sb.append(FileTools.tail(file, find, line, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • tail 读取文本文件
    *
  • @param fullPath
  • @param charset
  • @param find
  • @param line
  • @return
    */

public static StringBuilder tail(String fullPath, boolean find, int line, String charset) {

StringBuilder sb = new StringBuilder();try {  File file = new File(fullPath);  sb.append(FileTools.tail(file, find, line, charset));} catch (Exception ex) {  j2log(null, null, ex);}return sb;

}

/**

  • tail 读取文本文件
    *
  • @param file
  • @param charset
  • @param find
  • @param line
  • @return
    */

public static StringBuilder tail(File file, boolean find, int line, String charset) {

StringBuilder sb = new StringBuilder();BufferedReader bufferReader = null;if (null == charset || "".equals(charset)) {  charset = "UTF-8";}try {  if (!file.exists() || file.isDirectory()) {    throw new FileNotFoundException();  }  String fullPath = file.getPath();  bufferReader = new BufferedReader(new InputStreamReader(new FileInputStream(fullPath), charset));  String temp;  for (int i = 0; (temp = bufferReader.readLine()) != null; i++) {    if (!find || line == i) {      sb.append(temp);    }  }} catch (Exception ex) {  j2log(null, null, ex);} finally {  if (null != bufferReader) {    try {      bufferReader.close();    } catch (IOException ex) {      j2log(null, null, ex);    }  }}return sb;

}

/**

  • sed 读取文本文件
    *
  • @param filePath
  • @param fileName
  • @param charset
  • @return
    */

public static List<String> sed(String filePath, String fileName, String charset) {

List<String> list = new ArrayList();try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  list.addAll(FileTools.sed(file, charset));} catch (Exception ex) {  j2log(null, null, ex);}return list;

}

/**

  • sed 读取文本文件
    *
  • @param fullPath
  • @param charset
  • @return
    */

public static List<String> sed(String fullPath, String charset) {

List<String> list = new ArrayList();try {  File file = new File(fullPath);  list.addAll(FileTools.sed(file, charset));} catch (Exception ex) {  j2log(null, null, ex);}return list;

}

/**

  • sed 读取文本文件
    *
  • @param file
  • @param charset
  • @return
    */

public static List<String> sed(File file, String charset) {

List<String> list = new ArrayList();BufferedReader bufferReader = null;if (null == charset || "".equals(charset)) {  charset = "UTF-8";}try {  if (!file.exists() || file.isDirectory()) {    throw new FileNotFoundException();  }  String fullPath = file.getPath();  bufferReader = new BufferedReader(new InputStreamReader(new FileInputStream(fullPath), charset));  String temp;  for (int i = 0; (temp = bufferReader.readLine()) != null; i++) {    list.add(temp);  }} catch (Exception ex) {  j2log(null, null, ex);} finally {  if (null != bufferReader) {    try {      bufferReader.close();    } catch (IOException ex) {      j2log(null, null, ex);    }  }}return list;

}

/**

  • cat 读取文本文件
    *
  • @param filePath
  • @param fileName
  • @return
    */

public static byte[] cat(String filePath, String fileName) {

byte[] output = {};try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  output = FileTools.cat(file);} catch (Exception ex) {  j2log(null, null, ex);}return output;

}

/**

  • cat 读取文本文件
    *
  • @param fullPath
  • @return
    */

public static byte[] cat(String fullPath) {

byte[] output = {};try {  File file = new File(fullPath);  output = FileTools.cat(file);} catch (Exception ex) {  j2log(null, null, ex);}return output;

}

/**

  • cat 读取文本文件
    *
  • @param file
  • @return
    */

public static byte[] cat(File file) {

InputStream in = null;byte[] output = {};try {  if (!file.exists() || file.isDirectory()) {    throw new FileNotFoundException();  }  String fullPath = file.getPath();  long length = du(file, false);  long _2M = 2097152;  byte[] bytes = new byte[(int) length];  in = new FileInputStream(fullPath);  for (int count = 0; count != -1;) {    if (length > 16 * _2M) {      length = 4 * _2M;    } else if (length > 8 * _2M) {      length = 2 * _2M;    } else if (length > 4 * _2M) {      length = _2M;    } else if (length > 2 * _2M) {      length = _2M / 2;    } else if (length > _2M) {      length = _2M / 4;    } else {      length = 4096;    }    bytes = new byte[(int) length];    count = in.read(bytes);    output = concatArray(bytes, output);    length = in.available();  }} catch (Exception ex) {  j2log(null, null, ex);} finally {  if (null != in) {    try {      in.close();    } catch (Exception ex) {      j2log(null, null, ex);    }  }}return output;

}

/**

  • 合并数组
    *
  • @param old1
  • @param old2
  • @return
    */

private static byte[] concatArray(byte[] old1, byte[] old2) {

byte[] newArray = new byte[old1.length + old2.length];System.arraycopy(old1, 0, newArray, 0, old1.length);System.arraycopy(old2, 0, newArray, old1.length, old2.length);return newArray;

}

/**

  • dd 写入文件fullPath内容content
    *
  • @param filePath
  • @param fileName
  • @param content
  • @param isAppend
    */

public static void dd(String filePath, String fileName, byte[] content, boolean isAppend) {

try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  FileTools.dd(file, content, isAppend);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • dd 写入文件fullPath内容content
    *
  • @param fullPath
  • @param content
  • @param isAppend
    */

public static void dd(String fullPath, byte[] content, boolean isAppend) {

try {  File file = new File(fullPath);  FileTools.dd(file, content, isAppend);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • dd 写入文件fullPath内容content
    *
  • @param file
  • @param content
  • @param isAppend
    */

public static void dd(File file, byte[] content, boolean isAppend) {

FileOutputStream fileOutputStream = null;try {  if (!file.exists()) {    file.createNewFile();  }  fileOutputStream = new FileOutputStream(file, isAppend);  fileOutputStream.write(content);} catch (Exception ex) {  j2log(null, null, ex);} finally {  try {    if (null != fileOutputStream) {      fileOutputStream.close();    }  } catch (IOException ex) {    j2log(null, null, ex);  }}

}

/**

  • write 写文件内容content到文件fullPath
    *
  • @param filePath
  • @param fileName
  • @param content
    */

public static void write(String filePath, String fileName, String content) {

try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  FileTools.write(file, content, true);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • write 写文件内容content到文件fullPath
    *
  • @param fullPath
  • @param content
    */

public static void write(String fullPath, String content) {

try {  File file = new File(fullPath);  FileTools.write(file, content, true);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • write 写文件内容content到文件fullPath
    *
  • @param file
  • @param content
    */

public static void write(File file, String content) {

try {  FileTools.write(file, content, true);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • write 写(追加)文件内容content到文件fullPath
    *
  • @param filePath
  • @param fileName
  • @param content
  • @param isAppend
    */

public static void write(String filePath, String fileName, String content, boolean isAppend) {

try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  FileTools.write(file, content, isAppend);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • write 写(追加)文件内容content到文件fullPath
    *
  • @param fullPath
  • @param content
  • @param isAppend
    */

public static void write(String fullPath, String content, boolean isAppend) {

try {  File file = new File(fullPath);  FileTools.write(file, content, isAppend);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • write 写(追加)文件内容content到文件fullPath
    *
  • @param file
  • @param content
  • @param isAppend
    */

public static void write(File file, String content, boolean isAppend) {

FileWriter fileWriter = null;try {  if (!file.exists()) {    file.createNewFile();  }  fileWriter = new FileWriter(file.getPath(), isAppend);  fileWriter.write(content);} catch (Exception ex) {  j2log(null, null, ex);} finally {  if (null != fileWriter) {    try {      fileWriter.close();    } catch (IOException ex) {      j2log(null, null, ex);    }  }}

}

/**

  • tail 增加文件内容content到文件的index地位
    *
  • @param filePath
  • @param fileName
  • @param content
  • @param index
    */

public static void tail(String filePath, String fileName, String content, long index) {

try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  FileTools.tail(file, content, index);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • tail 增加文件内容content到文件的index地位
    *
  • @param fullPath
  • @param content
  • @param index
    */

public static void tail(String fullPath, String content, long index) {

try {  File file = new File(fullPath);  FileTools.tail(file, content, index);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • tail 增加文件内容content到文件的index地位
    *
  • @param file
  • @param content
  • @param index
    */

public static void tail(File file, String content, long index) {

RandomAccessFile randomAccessFile = null;try {  if (!file.exists()) {    file.createNewFile();  }  randomAccessFile = new RandomAccessFile(file.getPath(), "rw");  randomAccessFile.seek(index);  randomAccessFile.writeBytes(content);} catch (Exception ex) {  j2log(null, null, ex);} finally {  if (null != randomAccessFile) {    try {      randomAccessFile.close();    } catch (Exception ex) {      j2log(null, null, ex);    }  }}

}

/**

  • mkdir 创立目录
    *
  • @param filePath
  • @param fileName
  • @return
    */

public static File mkdir(String filePath, String fileName) {

File file = null;try {  String fullPath = combainPath(filePath, fileName);  file = new File(fullPath);  file = mkdir(file);} catch (Exception ex) {  j2log(null, null, ex);}return file;

}

/**

  • mkdir 创立目录
    *
  • @param fullPath
  • @return
    */

public static File mkdir(String fullPath) {

File file = null;try {  file = new File(fullPath);  file = mkdir(file);} catch (Exception ex) {  j2log(null, null, ex);}return file;

}

/**

  • mkdir 创立目录
    *
  • @param file
  • @return
    */

public static File mkdir(File file) {

try {  if (!file.exists()) {    file.mkdir();//如果文件夹不存在则创立  }} catch (Exception ex) {  j2log(null, null, ex);}return file;

}

/**

  • touch 创立文件
    *
  • @param filePath
  • @param fileName
    */

public static void touch(String filePath, String fileName) {

try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  touch(file);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • touch 创立文件
    *
  • @param fullPath
    */

public static void touch(String fullPath) {

try {  File file = new File(fullPath);  touch(file);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • touch 创立文件
    *
  • @param file
    */

public static void touch(File file) {

try {  if (!file.exists()) {    file.createNewFile();//如果文件不存在则创立  }} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • rm 删除文件
    *
  • @param filePath
  • @param fileName
    */

public static void rm(String filePath, String fileName) {

try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  rm(file);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • rm 删除文件
    *
  • @param fullPath
    */

public static void rm(String fullPath) {

try {  File file = new File(fullPath);  rm(file);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • rm 删除文件
    *
  • @param file
    */

public static void rm(File file) {

try {  if (!file.exists()) {    throw new FileNotFoundException();  }  if (file.isFile()) {    file.delete();  }} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • rmdir 删除目录
    *
  • @param filePath
  • @param fileName
  • @param loop
    */

public static void rmdir(String filePath, String fileName, boolean loop) {

try {  String fullPath = combainPath(filePath, fileName);  File dir = new File(fullPath);  rmdir(dir, loop);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • rmdir 删除目录
    *
  • @param fullPath
  • @param loop
    */

public static void rmdir(String fullPath, boolean loop) {

try {  File dir = new File(fullPath);  rmdir(dir, loop);} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • rmdir 删除目录
    *
  • @param dir
  • @param loop
    */

public static void rmdir(File dir, boolean loop) {

try {  if (!dir.exists()) {    throw new FileNotFoundException();  }  if (dir.isDirectory()) {    File[] files = dir.listFiles();    int length = files.length;    for (int i = 0; i < length && loop; i++) {      if (files[i].isDirectory()) {        rmdir(files[i], loop);      } else {        rm(files[i]);      }    }    if (loop || length == 0) {      dir.delete();    }  }} catch (Exception ex) {  j2log(null, null, ex);}

}

/**

  • du 获取文件理论大小
    *
  • @param filePath
  • @param fileName
  • @param loop
  • @return
    */

public static long du(String filePath, String fileName, boolean loop) {

long size = 0;try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  size = du(file, loop);} catch (Exception ex) {  j2log(null, null, ex);}return size;

}

/**

  • du 获取文件理论大小
    *
  • @param filePath
  • @param fileName
  • @return
    */

public static long du(String filePath, String fileName) {

long size = 0;try {  String fullPath = combainPath(filePath, fileName);  File file = new File(fullPath);  size = du(file, false);} catch (Exception ex) {  j2log(null, null, ex);}return size;

}

/**

  • du 获取文件理论大小
    *
  • @param fullPath
  • @return
    */

public static long du(String fullPath) {

long size = 0;try {  File file = new File(fullPath);  size = du(file, false);} catch (Exception ex) {  j2log(null, null, ex);}return size;

}

/**

  • du 获取文件理论大小
    *
  • @param file
  • @return
    */

public static long du(File file) {

long size = 0;try {  size = du(file, false);} catch (Exception ex) {  j2log(null, null, ex);}return size;

}

/**

  • du 获取文件理论大小
    *
  • @param fullPath
  • @param loop
  • @return
    */

public static long du(String fullPath, boolean loop) {

long size = 0;try {  File file = new File(fullPath);  size = du(file, loop);} catch (Exception ex) {  j2log(null, null, ex);}return size;

}

/**

  • du 获取文件理论大小
    *
  • @param file
  • @param loop
  • @return
    */

public static long du(File file, boolean loop) {

FileChannel fileChannel = null;long size = 0;try {  if (!file.exists()) {    throw new FileNotFoundException();  }  if (file.isFile()) {    FileInputStream fis = new FileInputStream(file);    fileChannel = fis.getChannel();    size = fileChannel.size();  } else if (file.isDirectory()) {    File[] files = file.listFiles();    int length = files.length;    for (int i = 0; i < length && loop; i++) {      if (files[i].isDirectory()) {        du(files[i], loop);      } else {        size += du(files[i], false);      }    }  }} catch (Exception ex) {  j2log(null, null, ex);} finally {  if (null != fileChannel) {    try {      fileChannel.close();    } catch (Exception ex) {      j2log(null, null, ex);    }  }}return size;

}
}