SE_Day01

news/2024/11/20 23:18:09/

day01

File类

File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)

使用File可以做到:

  • 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
  • 2:创建和删除文件或目录
  • 3:访问一个目录中的子项

但是File不能访问文件数据.

public class FileDemo {public static void main(String[] args) {//使用File访问当前项目目录下的demo.txt文件/*创建File时要指定路径,而路径通常使用相对路径。相对路径的好处在于有良好的跨平台性。"./"是相对路径中使用最多的,表示"当前目录",而当前目录是哪里取决于程序运行环境而定,在idea中运行java程序时,这里指定的当前目录就是当前程序所在的项目目录。*/
//        File file = new File("c:/xxx/xxx/xx/xxx.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()方法,可以创建一个新文件

package file;import java.io.File;
import java.io.IOException;/*** 使用File创建一个新文件*/
public class CreateNewFileDemo {public static void main(String[] args) throws IOException {//在当前目录下新建一个文件: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表示的文件删除

package file;import java.io.File;/*** 使用File删除一个文件*/
public class DeleteFileDemo {public static void main(String[] args) {//将当前目录下的test.txt文件删除/*相对路径中"./"可以忽略不写,默认就是从当前目录开始的。*/File file = new File("test.txt");if(file.exists()){file.delete();System.out.println("文件已删除!");}else{System.out.println("文件不存在!");}}
}
创建目录

mkDir():创建当前File表示的目录

mkDirs():创建当前File表示的目录,同时将所有不存在的父目录一同创建

package file;import java.io.File;/*** 使用File创建目录*/
public class MkDirDemo {public static void main(String[] args) {//在当前目录下新建一个目录: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()方法可以删除一个目录,但是只能删除空目录。

package file;import java.io.File;/*** 删除一个目录*/
public class DeleteDirDemo {public static void main(String[] args) {//将当前目录下的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方法可以访问一个目录中的所有子项

package file;import java.io.File;/*** 访问一个目录中的所有子项*/
public class ListFilesDemo1 {public static void main(String[] args) {//获取当前目录中的所有子项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[] listFiles(FileFilter)

该方法要求传入一个文件过滤器,并仅将满足该过滤器要求的子项返回。

package file;import java.io.File;
import java.io.FileFilter;/*** 重载的listFiles方法,允许我们传入一个文件过滤器从而可以有条件的获取一个目录* 中的子项。*/
public class ListFilesDemo2 {public static void main(String[] args) {/*需求:获取当前目录中所有名字以"."开始的子项*/File dir = new File(".");if(dir.isDirectory()){
//            FileFilter filter = new FileFilter(){//匿名内部类创建过滤器
//                public boolean accept(File file) {
//                    String name = file.getName();
//                    boolean starts = name.startsWith(".");//名字是否以"."开始
//                    System.out.println("过滤器过滤:"+name+",是否符合要求:"+starts);
//                    return starts;
//                }
//            };
//            File[] subs = dir.listFiles(filter);//方法内部会调用accept方法File[] subs = dir.listFiles(new FileFilter(){public boolean accept(File file) {return file.getName().startsWith(".");}});System.out.println(subs.length);}}
}

Lambda表达式

JDK8之后,java支持了lambda表达式这个特性.

  • lambda可以用更精简的代码创建匿名内部类.但是该匿名内部类实现的接口只能有一个抽象方法,否则无法使用!
  • lambda表达式是编译器认可的,最终会将其改为内部类编译到class文件中
package lambda;import java.io.File;
import java.io.FileFilter;/*** JDK8之后java支持了lambda表达式这个特性* lambda表达式可以用更精简的语法创建匿名内部类,但是实现的接口只能有一个抽象* 方法,否则无法使用。* lambda表达式是编译器认可的,最终会被改为内部类形式编译到class文件中。** 语法:* (参数列表)->{*     方法体* }*/
public class LambdaDemo {public static void main(String[] args) {//匿名内部类形式创建FileFilterFileFilter filter = new FileFilter() {public boolean accept(File file) {return file.getName().startsWith(".");}};FileFilter filter2 = (File file)->{return file.getName().startsWith(".");};//lambda表达式中参数的类型可以忽略不写FileFilter filter3 = (file)->{return file.getName().startsWith(".");};/*lambda表达式方法体中若只有一句代码,则{}可以省略如果这句话有return关键字,那么return也要一并省略!*/FileFilter filter4 = (file)->file.getName().startsWith(".");}
}

http://www.ppmy.cn/news/579031.html

相关文章

SE-Networks

SENet是ImageNet 2017&#xff08;ImageNet收官赛&#xff09;的冠军模型&#xff0c;和ResNet的出现类似&#xff0c;都在很大程度上减小了之前模型的错误率&#xff08;具体见附录&#xff09;&#xff0c;并且复杂度低&#xff0c;新增参数和计算量小。下面就来具体介绍一些…

SE-Attention

SENet Jie Hu, Li Shen, Gang Sun 摘要 卷积神经网络顾名思义就是依赖卷积操作&#xff0c;使用局部感受区域&#xff08;local receptive field&#xff09;的思想融合空间信息和通道信息来提取包含信息的特征。有很多工作从增强空间维度编码的角度来提升网络的表示能力&am…

java se中的se指什么,什么是Java SE?

本文概述 SE代表Java Standard Edition是一个计算平台, 我们可以在其中执行软件, 并且可以将其用于开发和部署台式机和服务器环境的可移植代码。它使用了Java编程语言。它是Java软件平台家族的一部分。 Java SE具有各种通用API和Java类库。它是Java编程的核心平台, 并提供所有库…

【Java】SE总结

目录 计算机体系 计算机的组成 CPU的工作原理 Java中的语句 Java中&#xff0c;能出现语句的位置有哪些 语句何时被执行 语句的执行触发大体有三种 类的加载、对象的实例化、方法的调用 什么时候进行类的加载 什么情况下类被用到 类加载时语句的执行顺序 对象实例化…

java.se

java数据类型总共为八个分别是 byte &#xff0c;short、int、long&#xff0c;float double&#xff0c; char&#xff0c; boolean。 其中整数型 byte [1]、short[2] 、int[4] 、long[8] 浮点型 float [4]、 double[8] 字符型 char[2]&#xff0c;可以存放单个字符&#…

SE 概论

学习软件工程已经有一段时间了&#xff0c;对软工有了一定的认识。 如果说&#xff0c;软件是计算机的灵魂&#xff0c;那么软件工程就是拯救了灵魂的天使。 软件工程&#xff08;Software Engineering&#xff0c;SE&#xff09;是研究和应用如何以系统性的、规范化的…

java se接口

接口 概念&#xff1a; 就是抽象类的一种特殊表现形式。当一个抽象类中&#xff0c;所有的方法都是抽象方法时该类就可以用接口来表示。接口不是类。 由于接口中没有成员函数&#xff0c;成员变量&#xff0c;构造函数&#xff0c;静态函数&#xff0c;静态变量(其变成了全局…

SE基础一

JavaSE 基础概念&#xff1a; 软件&#xff1a;&#xff08;softwore&#xff09;特定顺序的计算机数据与指令 软件&#xff1a;系统软件&#xff08;操作系统&#xff09;、应用软件&#xff08;主要处理某一领域的问题的软件&#xff09;。 语言分为&#xff1a; 计算机语言…