手机网站建设联系方式,网站设计常用软件都有哪些,如何做网站发布商品,中国最大跨境电商平台1 File类的静态成员遍历
字段摘要static String pathSeparator与系统有关的路径分隔符#xff0c;为了方便#xff0c;它被表示为一个字符串。static char pathSeparatorChar与系统有关的路径分隔符。static String separator与系统有关的默认名称分隔符#xff0c;为了方便…1 File类的静态成员遍历
字段摘要static String pathSeparator与系统有关的路径分隔符为了方便它被表示为一个字符串。static char pathSeparatorChar与系统有关的路径分隔符。static String separator与系统有关的默认名称分隔符为了方便它被表示为一个字符串。static char separatorChar与系统有关的默认名称分隔符。
路径分割符Windows分号 Linux冒号 文件名称分割符Windows\反斜杠 Linux/正斜杠 注意操作路径不能写死应该使用File.separator来连接
2 绝对路径和相对路径
绝对路径以盘符开始的完整路径 相对路径相对于当前项目的根目录 C:\files\file.txt — file.txt 路径不区分大小写 反斜杠是转义符 两个反斜杠表示一个反斜杠
3 File类的构造方法
public static void constructMethod() {File file new File(C://test.txt);System.out.println(file);//重写了Object类的toString方法 打印文件路径 路径可以不真实存在File file2 new File(C:,a.txt);//父子路径单独书写 变化灵活System.out.println(file2);File file3 new File(c:\\);//第一个参数的类型是File类而不是StringFile file4 new File(file3,a.txt);System.out.println(file4);}4 常用方法
获取
getAbsolutePathgetPathgetNamelength文件长度
public static void method() {File f1 new File(a.txt);//相对路径String absolutePath f1.getAbsolutePath();System.out.println(absolutePath);//打印绝对路径String path f1.getPath();System.out.println(path);//打印路径参数 a.txtSystem.out.println(f1.toString());//toString源码调用的就是getPath()File f2 new File(E:\\download\\learn\\a.txt);File f3 new File(a.txt);File f4 new File(E:\\download\\learn);//getName打印结尾部分 文件名/文件夹名System.out.println(f2.getName());//a.txtSystem.out.println(f3.getName());//a.txt 文件名System.out.println(f4.getName());//learn 文件夹名//length返回的是文件长度 //获取构造方法指定的文件的大小 单位为byte//文件不存在返回0 文件夹没有大小概念 也是0System.out.println(f2.length());}判断
exists()路径是否存在isDirectory()file对象是否是文件夹路径不存在返回falseisFile()file对象是否是文件路径不存在返回false
public static void method() {File f1 new File(a.txt);//相对路径System.out.println(f1.exists());File f2 new File(E:\\download\\learn);System.out.print(f1.isFile());System.out.println( f1.isDirectory());//true falseSystem.out.print(f2.isDirectory());System.out.println( f2.isFile());//true false}创建和删除
createNewFile()当该名称的文件不存在的时候创建一个空文件返回true。若文件存在不创建返回false。此方法只能创建文件不能创建文件夹。路径必须存在否则会抛出异常。【调用该方法会抛出IO异常 要么throws 要么try-catch】delete()删除file表示的文件或目录谨慎使用直接在硬盘删除文件/文件夹不走回收站。注意如果文件夹中有东西则不会删除成功返回false。如果路径不存在返回false。
public static void method() throws IOException {File f1 new File(a.txt);//相对路径 存在boolean b1 f1.createNewFile();System.out.println(b1);// falseFile f2 new File(b.txt);//不存在 创建返回trueboolean b2 f2.createNewFile();System.out.println(b2);// trueFile f3 new File(F://none);//路径不存在System.out.println(f3.createNewFile());//报错系统找不到指定的路径}mkdir()创建file表示的目录mkdirs()创建file表示的目录 包括必须但不存在的父级目录
public static void method() throws IOException {File f1 new File(E:\\download\\newlearn);//新文件夹boolean mkdir1 f1.mkdir();System.out.println(mkdir1);//trueFile f2 new File(E:\\download\\learn);//已存在文件夹boolean mkdir2 f2.mkdir();System.out.println(mkdir2);//falseFile f3 new File(E:\\download\\newlearn\\learn\\learn);System.out.println(f3.mkdir());// false不能创建多级目录System.out.println(f3.mkdirs());// true 可以创建多级目录File f4 new File(F:\\download);//路径不存在System.out.println(f4.mkdir());// false}遍历目录
String[] list()File[] listFile()
注意 如果路径不存在会报空指针异常。 如果路径不是目录也会报空指针异常。 可以遍历到隐藏文件夹。
public static void method() throws IOException {File f1 new File(E:\\download\\learn\\);String[] list f1.list();for(String i: list){//相对路径System.out.println(i);}File[] list f1.listFiles();for(File i: list){//绝对路径System.out.println(i);}}5 案例递归打印多级目录
public static void main(String[] args) {File dir new File(E:\\download\\1);getAllFiles(dir);}public static void getAllFiles(File dir){File[] files dir.listFiles();for(File file: files){System.out.println(file);}}打印结果显示不全 没有子文件夹 2里面还有3和4 E:\download\1\2 E:\download\1\2.doc E:\download\1\2.txt 解决方法如果遇到文件夹则递归调用getAllFiles()
public static void main(String[] args) {File dir new File(E:\\download\\1);getAllFiles(dir);}public static void getAllFiles(File dir){File[] files dir.listFiles();for(File file: files){if(file.isDirectory()){getAllFiles(file);}System.out.println(file);}}E:\download\1\2\3\4.txt E:\download\1\2\3 E:\download\1\2\3.pptx E:\download\1\2\3.txt E:\download\1\2 E:\download\1\2.docx E:\download\1\2.txt 6 案例文件搜索
只要txt文件其他的不需要。
public class FileTest {public static void main(String[] args) {File dir new File(E:\\download\\1);getAllFiles(dir);}public static void getAllFiles(File dir){File[] files dir.listFiles();for(File file: files){if(file.isDirectory()){getAllFiles(file);}else {if(file.toString().endsWith(.txt)){System.out.println(file);}}}}
}7 文件过滤器
File类中有两个listFiles的重载方法参数类型是过滤器
java.io.fileFilter接口 用于抽象路径名的过滤器抽象方法accept(File pathname)
java.io.fileNameFilter接口 用于过滤文件名称抽象方法accept(File dir, String name) 文件对象用这个构造方法 — File(dir, name)
需要自己写实现类重写抽象方法自定义过滤规则
listFiles对目录进行遍历获取文件和文件夹并封装为File对象 然后调用accept方法 讲File对象传递到accept的参数 如果返回值是false就会保存到数组中
public static void getAllFiles(File dir){File[] files dir.listFiles(new FileFilter() {Overridepublic boolean accept(File pathname) {if (pathname.isDirectory()){return true;}return pathname.toString().endsWith(txt);}});for(File file: files){if(file.isDirectory()){getAllFiles(file);}else {System.out.println(file);}}}输出 E:\download\1\2\3\4.txt E:\download\1\2\3.txt E:\download\1\2.txt Lambda简化
File[] filesdir.listFiles((pathname)- pathname.isDirectory()||pathname.getName().endsWith(.txt));