本帖最后由 小石姐姐 于 2018-4-27 11:14 编辑
IO流第一天学习笔记
Day 09java.io.File类:文件和目录的路径名的抽象表现形式 构造方法(指向,不会创建文件)
File File(String pathname):使用指定路径名创建一个File对象 File File(String parent, String child):根据指定的父路径和文件路径创建File对象 File File(File parent, String child):根据指定的父路径File对象和文件路径创建File对象
常用成员方法
创建:
boolean creatNewFile():创建一个新文件.返回是否创建成功 boolean mkdir():创建目录,返回是否创建成功 boolean mkdirs():创建多层目录,包括指定路径中缺少的父级目录.返回是否创建成功
删除
获取
String getPath():获取创建File对象时使用的路径 String getAbsolutePath():获取File对象的绝对路径字符串 File getAbsoluteFile():获取包含绝对路径的File对象 String getParent():获取File对象的父路径字符串 File getParentFile():获取File对象的父路径File对象 String getName():获取File对象的文件名或目录名 long length():获取文件大小(只能是文件,如果不存在则返回0L long lastModified():获取文件上次修改时间
判断
boolean exists():判断是否存在 boolean isAbsolute():判断创建File对象时是否使用的是绝对路径 boolean isDirectory():判断是否为目录 boolean isFile():判断是否为文件 boolean isHidden():判断是否隐藏
重要获取功能
String[] list():获取当前路径下所有文件和目录名称 File[] listFiles():获取当前路径下所有文件和目录的File对象.File对象必须是目录 static File[] listRoots():返回系统所有根路径
字节流
路径
重点练习listFile()相关的三个练习
递归打印所有目录下的.java文件 /*
使用递归来完成输出指定目录下所有的java文件名(包含子目录)
*/
public class Test {
public static void main(String[] args) {
File srcDir = new File("src");
printJavaFile(srcDir);
}
// 定义方法: 打印某个目录中的Java文件名
public static void printJavaFile(File dir) {
// 健壮性判断: 用于确认传入的确实是目录
if (!dir.isDirectory()) {
return; // 如果传入的不是目录, 则直接结束方法
}
// 如果能执行到这里, 则传入的肯定是目录, 获取该目录中的所有子文件和子目录
File[] files = dir.listFiles();
// 遍历所有file对象, 判断是文件还是目录
for (File childFile : files) {
// 判断是否是文件
if (childFile.isFile()) {
// 是文件. 获取文件名并判断是否是java文件, 是则打印
if (childFile.getName().endsWith(".java")) {
System.out.println(childFile.getName());
}
} else if (childFile.isDirectory()) {
// 是目录. 则需要打印该目录中的Java文件名.
// 我们当前定义的方法就可以打印指定目录中的Java文件名, 所以直接调用当前方法, 传入该子目录
printJavaFile(childFile);
}
}
}
} 递归删除目录 递归复制目录
|
|