在学习java之初就一直想着要自己封装一个文件管理的类,可以实现各种文件操作。
但是一直迟迟没有实现,然后我就作为一个“任务”给了小猫,让小猫去学习一些文件操作相关的知识,其实小猫挺认真的,并且也挺聪明,至少她花费的时间要比我花费的时间要短,而完成的内容要比我的好,下面这个是我在不同阶段经过三次修改和实现才完成的。
Java文件操作,共实现了文件复制(单个文件和多层目录文件),文件移动(单个文件和多层目录文件),文件删除(单个文件和多层目录文件),文件压缩(单个文件),文件解压(单个文件),文件分割(将一个大文件分割为若干个小文件),文件组合(将多个文件组合到一个文件中)。
- package ttstudy.io;
- import java.io.*;
- import java.util.*;
- import java.util.zip.*;
- public class FileManager {
- private static ArrayList<File> lsFiles = new ArrayList<File>();
- private static FileInputStream fis = null;
- private static FileOutputStream fos = null;
- /**
- * list all files
- * @param path
- * @return ArrayList<File>
- * @throws FileNotFoundException
- */
- public static ArrayList<File> listAllFiles(String path) throws FileNotFoundException {
- File file = new File(path);
- File[] f = file.listFiles();
- for(int i=0; i<f.length; i++) {
- lsFiles.add(f[i]);
- //If the current file is a directory, Recursion listed catalogue of the files
- if(f[i].isDirectory()) {
- listAllFiles(f[i].getAbsolutePath());
- }
- }
- return lsFiles;
- }
- /**
- * copy srcFile to desFile
- * @param srcFile
- * @param desFile
- * @throws FileNotFoundException
- */
- public static void copyFile(String srcFile, String desFile) throws FileNotFoundException, IOException {
- fis = new FileInputStream(new File(srcFile));
- fos = new FileOutputStream(new File(desFile));
- byte[] buf = new byte[1024];
- int len = 0;
- while((len=fis.read(buf)) != -1) {
- fos.write(buf, 0, len);
- }
- fos.close();
- fis.close();
- }
- /**
- * copy all files in srcFile to desFile
- * @param srcFile
- * @param desFile
- * @throws FileNotFoundException
- */
- public static void copyFiles(String srcFile, String desFile) throws F