File类操作文件,或者目录。
能实现对目录或者文件的增删改查...
绝对路径和相对路径:
相对路径:就是相对于当前的项目;
绝对路径:就是指定盘符...D:\test\test01.txt...
路径分隔符和系统的关系:
不同的操作系统使用不同的分隔符,Window和DOS系统默认使用"\"作为分隔符;UNIX和URL使用"/"作为分隔符;
但是Java作为跨平台语言,也是可以支持不同操作系统的分隔符的;
注意:在File中提供了一个常量可以根据不同的操作系统显示不同的分隔符;
//与系统相关的默认名称 - 分隔符字符staticStringseparator//为静态变量 可以直接通过类名调用 File.separator//这里使用了File类的构造方法File(Stringpathname) Filefile=newFile("Day16_File"+File.separator+"folder"); Filefile1=newFile("E:\\data"); System.out.println(file); System.out.println(file1);
File类中的构造器:
File(Stringpathname) //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 File(Fileparent, Stringchild) //从父抽象路径名和子路径名字符串创建新的 File实例。 File(Stringparent, Stringchild) //从父路径名字符串和子路径名字符串创建新的 File实例。 //目前只是创建了一个File对象,并没有对file进行具体的操作。Filefile1=newFile("E:\\data"); System.out.println(file1);//E:\dataFilefile2=newFile(file1,"\\test.txt"); System.out.println(file2);//E:\data\test.txtFilefile3=newFile("E:\\data","test02.txt"); System.out.println(file3);//E:\data\test02.txt
File类中的常用方法:
因为现阶段的File类仅能操作文件/文件夹的创建/删除...并不能对文件内容进行删除/修改的操作,所以仅做了解就行;注意创建文件/文件夹的适口可以先调用exites()方法判断文件/文件夹是否存在。
后期接触到的I/O流一般使用 File类定义文件的读取路径/写入路径,作为参数传入到I/O流的构造器中。
注意问题:
File类中的renameTo(Filedest)方法在操作的时候需要注意问是否存在的问题/*boolean renameTo(File dest)重命名由此抽象路径名表示的文件。操作的前提:FileA.renameTo(FileB),必须确保FileA存在但是FileB不存在一旦返回true表示操作成功则FileA中的文件不存在,FileA中的文件内容会拷贝到FileB中。*/Filefile=newFile("Day16_File\\folder\\test.txt"); Filefile2=newFile("E:\\aaa\\data.txt"); System.out.println(file.renameTo(file2));
直达递归 小红在成长,公众号:小红的成长日记Java开发——27.递归
使用递归遍历文件目录:
/*遍历指定目录下的所有文件(使用递归)当判断文件的时候可使用String类中的endsWith()可判断后缀名String类中的indexOf()可判断文件中是否有.*/publicstaticvoiddiGuiFile(Filefile){ File[] list=file.listFiles(); for (Filefile1 : list){ if (file1.isDirectory()){ diGuiFile(file1); } System.out.println(file1.getAbsoluteFile()); } System.out.println(file.getAbsoluteFile()); }