java文件和目录的增删复制
程序员文章站
2023-12-18 19:16:28
在使用java进行开发时常常会用到文件和目录的增删复制等方法。我写了一个小工具类。和大家分享,希望大家指正:
package com.wangpeng.utill...
在使用java进行开发时常常会用到文件和目录的增删复制等方法。我写了一个小工具类。和大家分享,希望大家指正:
package com.wangpeng.utill; import java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.filewriter; import java.io.inputstream; import java.io.printwriter; /** * @author wangpeng * */ public class tooloffile { /** * 创建目录 * * @param folderpath * 目录目录 * @throws exception */ public static void newfolder(string folderpath) throws exception { try { java.io.file myfolder = new java.io.file(folderpath); if (!myfolder.exists()) { myfolder.mkdir(); } } catch (exception e) { throw e; } } /** * 创建文件 * * @param filepath * 文件路径 * @throws exception */ public static void newfile(string filepath) throws exception { try { file myfile = new file(filepath); if (!myfile.exists()) { myfile.createnewfile(); } } catch (exception e) { throw e; } } /** * 创建文件,并写入内容 * * @param filepath * 文件路径 * @param filecontent * 被写入的文件内容 * @throws exception */ public static void newfile(string filepath, string filecontent) throws exception { // 用来写入字符文件的便捷类 filewriter filewriter = null; // 向文本输出流打印对象的格式化表示形式,使用指定文件创建不具有自己主动行刷新的新 printwriter printwriter = null; try { file myfile = new file(filepath); if (!myfile.exists()) { myfile.createnewfile(); } filewriter = new filewriter(myfile); printwriter = new printwriter(filewriter); printwriter.print(filecontent); printwriter.flush(); } catch (exception e) { throw e; } finally { if (printwriter != null) { printwriter.close(); } if (filewriter != null) { filewriter.close(); } } } /** * 复制文件 * * @param oldpath * 被拷贝的文件 * @param newpath * 复制到的文件 * @throws exception */ public static void copyfile(string oldpath, string newpath) throws exception { inputstream instream = null; fileoutputstream outstream = null; try { int byteread = 0; file oldfile = new file(oldpath); // 文件存在时 if (oldfile.exists()) { instream = new fileinputstream(oldfile); outstream = new fileoutputstream(newpath); byte[] buffer = new byte[1444]; while ((byteread = instream.read(buffer)) != -1) { outstream.write(buffer, 0, byteread); } outstream.flush(); } } catch (exception e) { throw e; } finally { if (outstream != null) { outstream.close(); } if (instream != null) { instream.close(); } } } /** * 复制文件 * @param instream 被拷贝的文件的输入流 * @param newpath 被复制到的目标 * @throws exception */ public static void copyfile(inputstream instream, string newpath) throws exception { fileoutputstream outstream = null; try { int byteread = 0; outstream = new fileoutputstream(newpath); byte[] buffer = new byte[1444]; while ((byteread = instream.read(buffer)) != -1) { outstream.write(buffer, 0, byteread); } outstream.flush(); } catch (exception e) { throw e; } finally { if (outstream != null) { outstream.close(); } if (instream != null) { instream.close(); } } } /** * 复制目录 * * @param oldpath * 被复制的目录路径 * @param newpath * 被复制到的目录路径 * @throws exception */ public static void copyfolder(string oldpath, string newpath) throws exception { try { (new file(newpath)).mkdirs(); // 假设目录不存在 则建立新目录 file a = new file(oldpath); string[] file = a.list(); file tempin = null; for (int i = 0; i < file.length; i++) { if (oldpath.endswith(file.separator)) { tempin = new file(oldpath + file[i]); } else { tempin = new file(oldpath + file.separator + file[i]); } if (tempin.isfile()) { copyfile(tempin.getabsolutepath(), newpath + "/" + (tempin.getname()).tostring()); } else if (tempin.isdirectory()) {// 假设是子目录 copyfolder(oldpath + "/" + file[i], newpath + "/" + file[i]); } } } catch (exception e) { throw e; } } /** * 删除文件 * * @param filepathandname */ public static void delfilex(string filepathandname) { file mydelfile = new file(filepathandname); mydelfile.delete(); } /** * 删除目录 * * @param path */ public static void delforder(string path) { file deldir = new file(path); if (!deldir.exists()) { return; } if (!deldir.isdirectory()) { return; } string[] templist = deldir.list(); file temp = null; for (int i = 0; i < templist.length; i++) { if (path.endswith(file.separator)) { temp = new file(path + templist[i]); } else { temp = new file(path + file.separator + templist[i]); } if (temp.isfile()) { temp.delete(); } else if (temp.isdirectory()) { // 删除完里面全部内容 delforder(path + "/" + templist[i]); } } deldir.delete(); } public static void main(string[] args) { string oldpath = "f:/test/aaa/"; string newpath = "f:/test/bbb/"; try { // tooloffile.newfolder("f:/test/hello/"); // tooloffile.newfile("f:/test/hello/world.txt","我爱你,the world! "); tooloffile.copyfolder(oldpath, newpath); // tooloffile.delforder("f:/test/hello"); } catch (exception e) { e.printstacktrace(); } system.out.println("ok"); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。