欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java文件操作工具類(lèi)

 更新時(shí)間:2016年05月18日 16:10:00   作者:s.watson  
這篇文章主要為大家介紹了一個(gè)非常詳細(xì)的java文件操作工具類(lèi),具有很強(qiáng)的實(shí)用性,感興趣的小伙伴們可以參考一下

最近為了修改大量收藏的美劇文件名,用swing寫(xiě)了個(gè)小工具,代碼是文件處理部分,具體內(nèi)容如下

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 轉(zhuǎn)義文件目錄
 *
 * @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("http://", "/");
 }
 return dori;
 }
 
 /**
 * list2Array 列表轉(zhuǎn)換數(shù)組
 *
 * @param list
 * @return
 */
 private static String[] list2Array(List list) {
 String array[] = (String[]) list.toArray(new String[list.size()]);
 return array;
 }
 
 /**
 * cp 復(fù)制文件
 *
 * @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 復(fù)制文件
 *
 * @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);//子文件目標(biāo)路徑
  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 單文件復(fù)制文件
 *
 * @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 單文件復(fù)制文件
 *
 * @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;//基本大小,默認(rèn)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 移動(dòng)文件
 *
 * @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 移動(dòng)文件
 *
 * @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 移動(dòng)文件
 *
 * @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 獲取文件擴(kuò)展名信息
 *
 * @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 獲取文件擴(kuò)展名信息
 *
 * @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 獲取文件擴(kuò)展名信息
 *
 * @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);//擴(kuò)展名的“.”的索引
  extension[1] = fileName.substring(lastIndex + 1);//擴(kuò)展名
  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 文件排序(默認(rèn)升序)
 *
 * @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 合并文件數(shù)組
 *
 * @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;
 }
 
 /**
 * 合并數(shù)組
 *
 * @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 寫(xiě)入文件fullPath內(nèi)容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 寫(xiě)入文件fullPath內(nèi)容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 寫(xiě)入文件fullPath內(nèi)容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 寫(xiě)文件內(nèi)容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 寫(xiě)文件內(nèi)容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 寫(xiě)文件內(nèi)容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 寫(xiě)(追加)文件內(nèi)容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 寫(xiě)(追加)文件內(nèi)容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 寫(xiě)(追加)文件內(nèi)容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 添加文件內(nèi)容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 添加文件內(nèi)容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 添加文件內(nèi)容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 創(chuàng)建目錄
 *
 * @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 創(chuàng)建目錄
 *
 * @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 創(chuàng)建目錄
 *
 * @param file
 * @return
 */
 public static File mkdir(File file) {
 try {
 if (!file.exists()) {
 file.mkdir();//如果文件夾不存在則創(chuàng)建
 }
 } catch (Exception ex) {
 j2log(null, null, ex);
 }
 return file;
 }
 
 /**
 * touch 創(chuàng)建文件
 *
 * @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 創(chuàng)建文件
 *
 * @param fullPath
 */
 public static void touch(String fullPath) {
 try {
 File file = new File(fullPath);
 touch(file);
 } catch (Exception ex) {
 j2log(null, null, ex);
 }
 }
 
 /**
 * touch 創(chuàng)建文件
 *
 * @param file
 */
 public static void touch(File file) {
 try {
 if (!file.exists()) {
 file.createNewFile();//如果文件不存在則創(chuàng)建
 }
 } 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 獲取文件實(shí)際大小
 *
 * @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 獲取文件實(shí)際大小
 *
 * @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 獲取文件實(shí)際大小
 *
 * @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 獲取文件實(shí)際大小
 *
 * @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 獲取文件實(shí)際大小
 *
 * @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 獲取文件實(shí)際大小
 *
 * @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;
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • SpringMVC實(shí)現(xiàn)文件上傳和下載的工具類(lèi)

    SpringMVC實(shí)現(xiàn)文件上傳和下載的工具類(lèi)

    這篇文章主要為大家詳細(xì)介紹了SpringMVC實(shí)現(xiàn)文件上傳和下載的工具類(lèi),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Java語(yǔ)言資源國(guó)際化步驟解析

    Java語(yǔ)言資源國(guó)際化步驟解析

    這篇文章主要介紹了Java語(yǔ)言資源國(guó)際化步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • springboot實(shí)現(xiàn)發(fā)送QQ郵箱

    springboot實(shí)現(xiàn)發(fā)送QQ郵箱

    這篇文章主要為大家詳細(xì)介紹了springboot實(shí)現(xiàn)發(fā)送QQ郵箱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java私有構(gòu)造器使用方法示例

    Java私有構(gòu)造器使用方法示例

    這篇文章主要介紹了Java私有構(gòu)造器的含義、關(guān)鍵字,同時(shí)通過(guò)實(shí)例向大家展示其使用方法,需要的朋友可以參考下
    2017-09-09
  • Spring RestTemplate簡(jiǎn)化HTTP通信實(shí)現(xiàn)功能探究

    Spring RestTemplate簡(jiǎn)化HTTP通信實(shí)現(xiàn)功能探究

    這篇文章主要為大家介紹了Spring框架中的RestTemplate,如果你是個(gè)Java程序員,那么你肯定知道Spring框架的重要性,在Spring的眾多工具中,RestTemplate是用來(lái)簡(jiǎn)化HTTP通信的一個(gè)強(qiáng)大工具
    2024-01-01
  • 一文帶你搞懂Java中的數(shù)據(jù)流處理

    一文帶你搞懂Java中的數(shù)據(jù)流處理

    這篇文章主要為大家詳細(xì)介紹了Java中數(shù)據(jù)流處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • mybatis-plus 判斷isnull or的操作

    mybatis-plus 判斷isnull or的操作

    這篇文章主要介紹了mybatis-plus 判斷isnull or的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • Java通俗易懂講解泛型

    Java通俗易懂講解泛型

    在正式進(jìn)入內(nèi)容之前說(shuō)明一下:泛型的內(nèi)容太多,也太復(fù)雜。這里因?yàn)镴ava中寫(xiě)數(shù)據(jù)結(jié)構(gòu)的時(shí)候會(huì)使用到,所以加上。關(guān)于泛型我找了挺多文章,再結(jié)合自己的理解,盡可能將其講清楚。不求會(huì)使用泛型,只要求后面數(shù)據(jù)結(jié)構(gòu)出現(xiàn)泛型的時(shí)候能夠知道是在干什么即可
    2022-05-05
  • Maven?Pom?文件中的隱式依賴(lài)導(dǎo)致Jar沖突問(wèn)題

    Maven?Pom?文件中的隱式依賴(lài)導(dǎo)致Jar沖突問(wèn)題

    這篇文章主要介紹了Maven?Pom?文件中的隱式依賴(lài)導(dǎo)致Jar沖突問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • springsecurity輕松實(shí)現(xiàn)角色權(quán)限的示例代碼

    springsecurity輕松實(shí)現(xiàn)角色權(quán)限的示例代碼

    這篇文章主要介紹了springsecurity輕松實(shí)現(xiàn)角色權(quán)限的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論