读书人

文件操作种

发布时间: 2013-10-14 12:54:46 作者: rapoo

文件操作类

package utils;

import java.io.File;
import java.io.IOException;

public class FileUtil {
?public static void main(String[] args) {
??createDir("C:/Documents and Settings/Administrator/桌面/product/workloadStats");
?}
?
?public static boolean createDir(String destDirName) {
???? File dir = new File(destDirName);
???? if(dir.exists()) {
???? ?System.out.println("创建目录" + destDirName + "失败,目标目录已存在!");
???? ?return false;
???? }
???? if(!destDirName.endsWith(File.separator))
???? ?destDirName = destDirName + File.separator;
???? // 创建单个目录
???? if(dir.mkdirs()) {
???? ?System.out.println("创建目录" + destDirName + "成功!");
????? ?return true;
???? } else {
???? ?System.out.println("创建目录" + destDirName + "失败!");
???? ?return false;
???? }
?}
?
?public static boolean createFile(String destFileName) {
???? File file = new File(destFileName);
???? if (file.exists()) {
???? ?System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
???? ?return false;
???? }
???? if (destFileName.endsWith(File.separator)) {
???? ?System.out.println("创建单个文件" + destFileName + "失败,目标不能是目录!");
???? ?return false;
???? }
???? if (!file.getParentFile().exists()) {
???? ?System.out.println("目标文件所在路径不存在,准备创建。。。");
???? ?if (!file.getParentFile().mkdirs()) {
???? ??System.out.println("创建目录文件所在的目录失败!");
???? ??return false;
???? ?}
???? }

???? // 创建目标文件
???? try {
???? ?if (file.createNewFile()) {
???? ??System.out.println("创建单个文件" + destFileName + "成功!");
???? ??return true;
???? ?} else {
???? ??System.out.println("创建单个文件" + destFileName + "失败!");
???? ??return false;
???? ?}
???? } catch (IOException e) {
???? ?e.printStackTrace();
???? ?System.out.println("创建单个文件" + destFileName + "失败!");
???? ?return false;
???? }
?}
?
?public static boolean deleteFile(String destFileName) {
??File file = new File(destFileName);
??return file.delete();
?}
?
?public static boolean deletefile(File f)
?{
???? if (f.isFile())
???? ?f.delete();
???? return true;
?}
?
?public static boolean deletedir(File f){
??if(f.isDirectory())
???? {
???????? File[] files = f.listFiles();
???????? for(int i=0;i<files.length;i++)
???????? {
???????????? if(files[i].isDirectory()) deletedir(files[i]);
???????????? else deletefile(files[i]);
???????? }
???? }
???? f.delete();
???? return true;
?}

?

/**
?*?将delete目录下与standard目录下相同的文件移到delete目录下的deletedFile中
?*/

public static boolean compareDir(File delete, File standard) {

??System.out.println("..........开始处理..........");

??int count = 0;

??File deletedFileDir = new File(delete.getAbsolutePath()
????+ File.separator + "deletedFile");
??deletedFileDir.mkdirs();

??class MyFileFilter implements FileFilter {
???public boolean accept(File file) {
????if (file.isDirectory())
?????return false;
????return true;
???}

??}

??File[] files1 = standard.listFiles(new MyFileFilter());
??File[] files2 = delete.listFiles(new MyFileFilter());
??System.out.println("基准目录中的文件个数=" + files1.length);
??System.out.println("处理目录中的文件个数=" + files2.length);
??for (int i = 0, len1 = files1.length; i < len1; i++) {
???File f1 = files1[i];
???for (int j = 0, len2 = files2.length; j < len2; j++) {
????File f2 = files2[j];
????if (f1.isFile() && f2.isFile()
??????&& f1.getName().equals(f2.getName())) {
?????try {
??????InputStream in = new BufferedInputStream(
????????new FileInputStream(f2));
??????File deletedFile = new File(deletedFileDir
????????.getAbsolutePath()
????????+ File.separator + f2.getName());
??????System.out.println(deletedFile.getAbsolutePath());
??????count++;
??????if (deletedFile.createNewFile()) {
???????OutputStream out = new BufferedOutputStream(
?????????new FileOutputStream(deletedFile));
???????byte[] buffer = new byte[1024];
???????int byteread;
???????while ((byteread = in.read(buffer)) != -1) {
????????out.write(buffer, 0, byteread);
???????}
???????out.close();
??????}
??????in.close();
?????} catch (Exception e) {
??????e.printStackTrace();
?????}
?????f2.delete();
????}
???}
??}

??System.out.println("..........处理完毕..........");
??System.out.println("一共移动" + count + "个文件");
??return true;

?}
}

读书人网 >编程

热点推荐