File的常用方法及IO实战
1. File的常用方法
Files.exists():检测文件路径是否存在。 Files.createFile():创建文件。 Files.createDirectory():创建文件夹。 Files.delete():删除一个文件或目录。 Files.copy():复制文件。 Files.move():移动文件。 Files.size():查看文件个数。 Files.read():读取文件。 Files.write():写入文件。
2. IO流实战
1. 删除指定目录的文件
import java.io.*; public class JavaTest { public static void main(String[] args) throws Exception { String filePath = "G:\\QQ视频20220227140120.mp4"; File file = new File(filePath); delFile(file); } public static void delFile(File file) { if (!file.exists()) { System.out.println("文件不存在!!!"); return; } boolean rs = file.delete(); if (rs) { System.out.println("文件删除成功"); } else { System.out.println("文件删除失败"); } } }
2. 实现分行向文件中写入数据
import java.io.*; public class JavaTest { public static void main(String[] args) throws Exception { String filePath = "G://a.txt"; File file = new File(filePath); try { if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file); // 建立文件输出流 BufferedWriter bw = new BufferedWriter(fw); // 使用缓冲区数据流封装输出流 for (int i = 0; i < 100; i++) { bw.write("Java交互管道---IO流".toCharArray()); // 写入数据到输出流 bw.newLine(); // 写入换行符 bw.flush(); // 刷新缓冲区 } System.out.println("成功写入数据!"); } catch (Exception e) { e.printStackTrace(); } } }
3. IO流实现复制文件夹
import java.io.*; public class JavaTest { public static void main(String[] args) throws Exception { File sourceFile = null; File desFile = null; String sourceFolder = "G:\\untitled"; String copyFolder = "G:\\a"; sourceFile = new File(sourceFolder); if (!sourceFile.isDirectory() || !sourceFile.exists()) { System.out.println("源文件夹不存在"); } else { desFile = new File(copyFolder); desFile.mkdir(); copy(sourceFile.listFiles(), desFile); System.out.println("文件夹复制成功!"); } } public static void copy(File[] f1, File file) { if (!file.exists()) { file.mkdir(); } for (int i = 0; i < f1.length; i++) { // 文件类型 if (f1[i].isFile()) { try { FileInputStream fis = new FileInputStream(f1[i]); FileOutputStream out = new FileOutputStream( new File( file.getPath() + File.separator + f1[i].getName() ) ); int count = fis.available(); byte[] data = new byte[count]; if ((fis.read(data)) != -1) { out.write(data); } } catch (Exception e) { e.printStackTrace(); } } // 文件夹类型 if (f1[i].isDirectory()) { File des = new File(file.getPath() + File.separator + f1[i].getName()); des.mkdir(); copy(f1[i].listFiles(), des); } } } }
4. 递归读取文件夹的文件名
import java.io.*; public class JavaTest { public static void listFile(String path) { if (path == null) { System.out.println("发生了空路径异常"); } File[] files = new File(path).listFiles(); if (files == null) { System.out.println("发生了空内容异常"); } for (File file : files) { if (file.isFile()) { System.out.println(file.getName()); } else if (file.isDirectory()) { System.out.println("Directory:" + file.getName()); listFile(file.getPath()); } else { System.out.println("Error"); } } } public static void main(String[] args) throws Exception { JavaTest.listFile("G:\\a"); } }
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/15941933.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?