首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 资料工具类 FileUtil

2012-12-19 
java 文件工具类 FileUtilpackage com.woyo.utilsimport java.io.Fileimport java.io.FileInputStreami

java 文件工具类 FileUtil

package com.woyo.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.InputStream;import java.io.PrintWriter;import java.util.HashSet;import java.util.Set;import org.apache.log4j.Logger;/** * 过滤指路歌曲文件 * @author dylan_xu * @date Mar 11, 2012 * @modified by * @modified date * @since JDK1.6 * @see com.woyo.utils.FileUtil */public class FileUtil {public static Logger logger = Logger.getLogger(FileUtil.class);public static Set<String> sets = new HashSet<String>();public static void main(String[] args) {refreshFileList("G:\\Music");//moveFolder("G:\\music\\周杰伦", "E:\\Kugou");}/** * 过滤MP3文件 *  * @param strPath */public static void refreshFileList(String strPath) {File dir = new File(strPath);File[] files = dir.listFiles();if (files == null) {return;}for (int i = 0; i < files.length; i++) {if (files[i].isDirectory()) {refreshFileList(files[i].getAbsolutePath());} else {String strFilePath = files[i].getAbsolutePath().toLowerCase();String strName = files[i].getName();if (strName.endsWith(".mp3")) {boolean bFlag = sets.add(strName);if (bFlag == Boolean.FALSE) {// 删除重复文件removeFile(strFilePath);}}// System.out.println("FILE_PATH:" + strFilePath + "|strName:" +// strName);}}}/** * 创建文件夹 *  * @param strFilePath *            文件夹路径 */public boolean mkdirFolder(String strFilePath) {boolean bFlag = false;try {File file = new File(strFilePath.toString());if (!file.exists()) {bFlag = file.mkdir();}} catch (Exception e) {logger.error("新建目录操作出错" + e.getLocalizedMessage());e.printStackTrace();}return bFlag;}public boolean createFile(String strFilePath, String strFileContent) {boolean bFlag = false;try {File file = new File(strFilePath.toString());if (!file.exists()) {bFlag = file.createNewFile();}if (bFlag == Boolean.TRUE) {FileWriter fw = new FileWriter(file);PrintWriter pw = new PrintWriter(fw);pw.println(strFileContent.toString());pw.close();}} catch (Exception e) {logger.error("新建文件操作出错" + e.getLocalizedMessage());e.printStackTrace();}return bFlag;}/** * 删除文件 *  * @param strFilePath * @return */public static boolean removeFile(String strFilePath) {boolean result = false;if (strFilePath == null || "".equals(strFilePath)) {return result;}File file = new File(strFilePath);if (file.isFile() && file.exists()) {result = file.delete();if (result == Boolean.TRUE) {logger.debug("[REMOE_FILE:" + strFilePath + "删除成功!]");} else {logger.debug("[REMOE_FILE:" + strFilePath + "删除失败]");}}return result;}/** * 删除文件夹(包括文件夹中的文件内容,文件夹) *  * @param strFolderPath * @return */public static boolean removeFolder(String strFolderPath) {boolean bFlag = false;try {if (strFolderPath == null || "".equals(strFolderPath)) {return bFlag;}File file = new File(strFolderPath.toString());bFlag = file.delete();if (bFlag == Boolean.TRUE) {logger.debug("[REMOE_FOLDER:" + file.getPath() + "删除成功!]");} else {logger.debug("[REMOE_FOLDER:" + file.getPath() + "删除失败]");}} catch (Exception e) {logger.error("FLOADER_PATH:" + strFolderPath + "删除文件夹失败!");e.printStackTrace();}return bFlag;}/** * 移除所有文件 *  * @param strPath */public static void removeAllFile(String strPath) {File file = new File(strPath);if (!file.exists()) {return;}if (!file.isDirectory()) {return;}String[] fileList = file.list();File tempFile = null;for (int i = 0; i < fileList.length; i++) {if (strPath.endsWith(File.separator)) {tempFile = new File(strPath + fileList[i]);} else {tempFile = new File(strPath + File.separator + fileList[i]);}if (tempFile.isFile()) {tempFile.delete();}if (tempFile.isDirectory()) {removeAllFile(strPath + "/" + fileList[i]);// 下删除文件夹里面的文件removeFolder(strPath + "/" + fileList[i]);// 删除文件夹}}}public static void copyFile(String oldPath, String newPath) {try {int bytesum = 0;int byteread = 0;File oldfile = new File(oldPath);if (oldfile.exists()) { // 文件存在时InputStream inStream = new FileInputStream(oldPath); // 读入原文件FileOutputStream fs = new FileOutputStream(newPath);byte[] buffer = new byte[1444];while ((byteread = inStream.read(buffer)) != -1) {bytesum += byteread; // 字节数 文件大小System.out.println(bytesum);fs.write(buffer, 0, byteread);}inStream.close();logger.debug("[COPY_FILE:" + oldfile.getPath() + "复制文件成功!]");}} catch (Exception e) {System.out.println("复制单个文件操作出错 ");e.printStackTrace();}}public static void copyFolder(String oldPath, String newPath) {try {(new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹File a = new File(oldPath);String[] file = a.list();File temp = null;for (int i = 0; i < file.length; i++) {if (oldPath.endsWith(File.separator)) {temp = new File(oldPath + file[i]);} else {temp = new File(oldPath + File.separator + file[i]);}if (temp.isFile()) {FileInputStream input = new FileInputStream(temp);FileOutputStream output = new FileOutputStream(newPath+ "/ " + (temp.getName()).toString());byte[] b = new byte[1024 * 5];int len;while ((len = input.read(b)) != -1) {output.write(b, 0, len);}output.flush();output.close();input.close();logger.debug("[COPY_FILE:" + temp.getPath() + "复制文件成功!]");}if (temp.isDirectory()) {// 如果是子文件夹copyFolder(oldPath + "/ " + file[i], newPath + "/ "+ file[i]);}}} catch (Exception e) {System.out.println("复制整个文件夹内容操作出错 ");e.printStackTrace();}}public static void moveFile(String oldPath, String newPath) {copyFile(oldPath, newPath);//removeFile(oldPath);}public static void moveFolder(String oldPath, String newPath) {copyFolder(oldPath, newPath);//removeFolder(oldPath);}}
?

热点排行