File类和IO流

mac2024-01-31  41

包括了文件夹的新建,拷贝与删除等

public class Test2 { public static void main(String[] args) throws IOException { // 创建文件夹文件并写内容 File file1 = new File("E:/MXY/mxy.txt"); // 先创建最底层文件或文件夹的父级文件,file1.mkdir();只能创建最底层文件夹,file1.mkdirs();创建多级 file1.getParentFile().mkdir(); // 创建文件 file1.createNewFile(); Writer rt = null; rt = new FileWriter(file1); rt.write("今天天气不错"); rt.write("\r\t"); rt.write("适合敲代码"); rt.flush(); rt.close(); // 显示目录 System.out.println(file1.listFiles()); // 显示文件名 System.out.println(file1.getName()); // renameTo移动目录,这里测试 了不是复制,只是重命名,文件夹层数不一致没用 File file2 = new File("E:/MY/ddd/sss"); file2.getParentFile().mkdir(); file2.renameTo(new File("E:/kkk/www/www")); // 调用拷贝文件夹方法 File src = new File("E:/MXY"); System.out.println(Arrays.toString(src.listFiles())); File dest = new File("D:/MXY"); copyDetails(src, dest); // 打印目录 System.out.println(Arrays.toString(dest.listFiles())); // 文件夹最后修改日期 System.out.println(new SimpleDateFormat().format(new Date(dest.lastModified()))); // 删除原文件夹 delete(src); } // 拷贝文件夹方法 public static void copyDetails(File src, File dest) throws IOException { if (src.isFile()) { if (!dest.getParentFile().exists()) { dest.getParentFile().mkdirs(); } copyFile(src, dest); } else { dest.mkdirs(); File[] files = src.listFiles(); for (File srcFile : files) { System.out.println(srcFile); copyDetails(srcFile, new File(dest, srcFile.getName())); } } } // 文件拷贝 public static void copyFile(File src, File dest) throws IOException { InputStream is = null; OutputStream os = null; is = new FileInputStream(src); os = new FileOutputStream(dest); byte[] a = new byte[1024]; int len = -1; while ((len = is.read(a)) != -1) { os.write(a, 0, len); } os.flush(); os.close(); is.close(); } // 删除文件夹,递归,找到最后一层开始删除,一层一层往上删除文件 public static void delete(File file) { File[] files = file.listFiles(); if (files != null) { for (File f : files) { if (file.isDirectory()) { delete(f); } else { file.delete(); } } } file.delete(); } }
最新回复(0)