存储和读写方案
认识File
文件存储在磁盘中,而不是内存中。断电或者程序终止,文件还在。
广义的文件包括文件夹。
不能读写文件里面存储的数据,所以怎么办?
用IO流
功能
操作文件
这两种斜杠方式都可以。
相对路径不带盘符,默认在工程下,也可以用绝对路径
建议用相对路径
现在创建一个File对象,这个文件实际上不存在。
创建文件
创建文件夹
这里应为能删除空文件夹,不能删除非空文件夹。
可以删除空文件
注意是一级目录
上面的删除是可以真的删除掉。
文件搜索
需求:在D盘找到某个文件
分析:
1.拿到一级,遍历一级文件对象,判断是不是文件.
2.是文件判断是不是想要的.
3.不是文件,返回1
package com.itheima.demo2recursion;import java.io.File;public class FileSearchTest4 {public static void main(String[] args) {// 目标:完成文件搜索。找出D:盘下的QQ.exe的位置。try {File dir = new File("D:/");searchFile(dir , "QQ.exe");} catch (Exception e) {e.printStackTrace();}}/*** 搜索文件* @param dir 搜索的目录* @param fileName 搜索的文件名称*/public static void searchFile(File dir, String fileName) throws Exception {// 1、判断极端情况if(dir == null || !dir.exists() || dir.isFile()){return; // 不搜索}// 2、获取目录下的所有一级文件或者文件夹对象File[] files = dir.listFiles();// 3、判断当前目录下是否存在一级文件对象,存在才可以遍历//不为空指针是怕没有权限,对应上文注意事项第二条//长度大于01对应第二条if(files != null && files.length > 0){// 4、遍历一级文件对象for (File file : files) {// 5、判断当前一级文件对象是否是文件if(file.isFile()){// 6、判断文件名称是否和目标文件名称一致if(file.getName().contains(fileName)){System.out.println("找到目标文件:" + file.getAbsolutePath());Runtime r = Runtime.getRuntime();r.exec(file.getAbsolutePath());//启动这个程序//执行时候的异常,原因是担心路径写错.因此把异常抛给上一级}}else{// 7、如果当前一级文件对象是文件夹,则继续递归调用searchFile(file, fileName);}}}}
}