File (不是访问文件数据的)
每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)主要是JAVA为文件这块的操作(如创建、删除、新增等)而设计的相关类包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较。// File file = new File("c:/xxx/xxx/xx/xxx.txt"); //-----绝对路径不推荐使用名词解释1)相对路径 顾名思义,相对路径就是相对于当前文件的路径。开发中一般表示路径使用这个方法。2)绝对路径 绝对路径就是你的电脑上的文件或目录在硬盘上真正的路径。 //使用File访问当前项目目录下的demo.txt文件File file = new File("./demo.txt");//获取文件名字String name = file.getName();System.out.println(name);//获取文件大小(单位是字节)long len = file.length();System.out.println(len+"字节");//是否可读可写boolean cr = file.canRead();boolean cw = file.canWrite();System.out.println("是否可读:"+cr);System.out.println("是否可写:"+cw);//是否隐藏文件boolean ih = file.isHidden();System.out.println("是否隐藏:"+ih);
createNewFile()方法 创建新文件
//在当前目录下新建一个文件:test.txtFile file = new File("./test.txt");//boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录if(file.exists()){ System.out.println("该文件已存在!");}else{ file.createNewFile();//将File表示的文件创建出来 System.out.println("文件已创建!");}
delete()方法 文件删除
File file = new File("test.txt");//同属于一个文件夹,可以不写 "./"if(file.exists()){ file.delete(); //删除文件 System.out.println("文件已删除!");}else{ System.out.println("文件不存在!");}
mkDir()、mkDirs(): 创建目录
//在当前目录下新建一个目录:demo// File dir = new File("demo");File dir = new File("./a/b/c/d/e/f");if(dir.exists()){ System.out.println("该目录已存在!");}else{ //dir.mkdir();//创建目录时要求所在的目录必须存在 ,所以一般不用 dir.mkdirs();//创建目录时会将路径上所有不存在的目录一同创建 System.out.println("目录已创建!");}
delete() 删除一个目录,但是只能删除空目录
//将当前目录下的demo目录删除File dir = new File("demo");// File dir = new File("a");if(dir.exists()){ dir.delete();//delete方法删除目录时只能删除空目录 System.out.println("目录已删除!");}else{ System.out.println("目录不存在!");}
listFiles方法 可以访问一个目录中的所有子项
//获取当前目录中的所有子项File dir = new File(".");/* boolean isFile() 判断当前File表示的是否为一个文件 boolean isDirectory() 判断当前File表示的是否为一个目录 */if(dir.isDirectory()){ /* File[] listFiles() 将当前目录中的所有子项返回。返回的数组中每个File实例表示其中的一个子项 */ File[] subs = dir.listFiles(); System.out.println("当前目录包含"+subs.length+"个子项"); for(int i=0;i<subs.length;i++){ File sub = subs[i]; System.out.println(sub.getName()); }}
重载的 listFiles方法: 有参的
//该方法要求传入一个文件过滤器,并仅将满足该过滤器要求的子项返回。File dir = new File(".");if(dir.isDirectory()){ File[] subs = dir.listFiles(new FileFilter(){ public boolean accept(File file) { return file.getName().startsWith("."); }});System.out.println(subs.length);
Lambda表达式:
JDK8之后,java支持了lambda表达式这个特性.可以用更精简的代码创建匿名内部类.但是该匿名内部类实现的接口只能有一个抽象方法,否则无法使用!是编译器认可的,最终会将其改为内部类编译到class文件中Lambda特征:
可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。可选的大括号:如果主体包含了一个语句,就不需要使用大括号。可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。// 语法(参数列表) ->{ 方法体} //匿名内部类形式创建FileFilter ---- ①FileFilter filter = new FileFilter() { public boolean accept(File file) { return file.getName().startsWith("."); }};//lambda 写法 写① 的匿名内部类创建 FileFilter ---- ②FileFilter filter2 = (File file)->{ return file.getName().startsWith(".");};//lambda表达式中参数的类型可以忽略不写 lambda 再次简化②的版本----③FileFilter filter3 = (file)->{ return file.getName().startsWith(".");};/* lambda表达式方法体中若只有一句代码,则{}可以省略 如果这句话有return关键字,那么return也要一并省略! ------基于③ 再次简化的写法版本*/FileFilter filter4 = (file)->file.getName().startsWith(".");
学习记录,如有侵权请联系删除。
这是水淼·dedeCMS站群文章更新器的试用版本更新的文章,故有此标记(2024-02-03 08:32:28)