前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、File类
1File的作用
1、java.util.File类 : 文件和文件目录路径的抽象表示形式,与平台无关。其实现了 Serializable , Comparable两大接口,其对象可序列化和比较。
2、File 类能新建、删除、重命名文件和目录,但是File 不能访问文件内容本身。如果需要访问文件内容本身,需要使用 输入输出流
3、想要在java程序中表示一个真实存在的文件或目录,那么必须有一个File 对象,但是 java 程序 中的一个 File 对象,可能没有真实存在的文件或目录
4、File对象可以作为参数传递给流的构造器
由源码可知
public class File implements Serializable, Comparable<File>{
}
2、File类使用
2.1、常用构造器
- public File (String pathname) :以pathname为路径创建File对象,可以是相对路径和绝对路径
- public File (String parent, String child) : 以parent为路径,child为子路径创建File对象
- public File (File parent , String child) : 根据一个父File对象路径和文件创建一个新的File对象
文件路径:pathname
pathname:通过这个路径指定唯一的一个文件(可能是一个普通文件,也可能是一个目录文件)
例:D:\Document\code , 是系统中用来描述文件位置的一种方式,通过这个路径就可以确定这个文件。
文件路径中的 \ 就是在分割不同的
在windows 和 DOS 中 默认是使用 \ (反斜杠) 作为目录的分割符,也可以使用 / (斜杠) 来进行分割,(使用 \ 进行目录层级的分割,要用双 \ ,否则会被识别为转义字符,例如 :D:\\Document\\code\\test.txt, 使用**/** 则不需要 )
在 Linux 或 MAc 中使用 / 作用类路径之间的分隔符
代码示例:
1、使用构造器 public File (String pathname)创建对象
以绝对路径的方式的方式,新建一个file对象
File file1 = new File("D:\Document\code\test.txt");
以相对路径的方式方式创建一个File 对象,在IEDA中相对的路径的路径是创建项目的根路径
File file1 = new File("test.txt");
---------------------------------------------------------------------------------------------
2、使用public File (String parent, String child) 构造器创建对象
File file = new File("D:\\Document\\code","test2.txt");
---------------------------------------------------------------------------------------------
3、使用 public File (File parent , String child) 构造器创建对象
File file = new File(new File("D:/Document/code"),"test.txt");
2.2、常用方法
2.2.1、File类的创建、删除功能
方法 | 描述 |
---|---|
public boolean createNewFile() | 创建文件。若文件存在,则不创建,返回false |
public boolean mkdir() | 创建文件目录,如果此文件目录存在,就不创建。如果此文件的上层目录不存在也不创建 |
public boolean mkdirs() | 创建文件目录。如果上层文件目录不存在,一并创建 |
public boolean delete() | 删除文件或者文件夹 (注 : java中的删除不走回收站,要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录) |
代码示例:文件的创建与删除,要求上层目录存在
在D盘下创建名为test.txt的文件,如果不存在则创建文件,如果存在,则删除文件
public void test1() throws IOException {
File file = new File("D:/Document/test.txt");
System.out.println(file.exists());
if (!file.exists()){
file.createNewFile();
}else if (file.exists()){
file.delete();
}
}
代码示例:创建文件目录(上层目录存在)
上层目录Document 存在,文件目录创建成功
public void test2(){
File file = new File("D:/Document/test2");
boolean mkdir = file.mkdir();
if (mkdir){
System.out.println("文件目录创建成功!");
}else{
System.out.println("文件目录创建失败!");
}
}
如果上层目录hello文件夹不存在,文件目录就会创建失败
public void test3(){
File file = new File("D:/hello/test");
boolean mkdir = file.mkdir();
if (mkdir){
System.out.println("文件目录创建成功!");
}else{
System.out.println("文件目录创建失败!");
}
}
如果上层目录不存在,也想创建文件目录,就需要使用mkdirs,文件目录创建成功!
public void test3(){
File file = new File("D:/hello/test");
boolean mkdir = file.mkdirs();
if (mkdir){
System.out.println("文件目录创建成功!");
}else{
System.out.println("文件目录创建失败!");
}
}
2.2.2、File类的判断功能
方法 | 描述 |
---|---|
public boolean isDirector() | 判断是否是文件目录 |
public boolean isFile() | 判断是否是文件 |
public boolean exists () | 判断是否存在 |
public boolean canRead() | 判断是否可读 |
public boolean canWrite() | 判断是否可写 |
public boolean isHidden() | 判断是否隐藏 |
代码示例:在上面的示例中,在D盘下面创建了一个名为test的文件,使用这个文件来进行测试
public void test4(){
File file = new File("D:/test.txt");
System.out.println("是否是文件目录:"+file.isDirectory());
System.out.println("是否是文件:"+file.isFile());
System.out.println("文件是否存在:"+file.exists());
System.out.println("文件是否可读:"+file.canRead());
System.out.println("文件是否可写:"+file.canWrite());
System.out.println("文件是否隐藏:"+file.isHidden());
}
2.2.3、File类的获取功能
方法 | 描述 |
---|---|
public String getAbsolutePath() | 获取绝对路径 |
public String getPath() | 获取路径 |
public String getName() | 获取文件或文件夹的名称 |
public String getParent() | 获取上层目录路径。若无,返回null |
public long length() | 获取文件长度 (字节数)。不能获取目录的长度 |
public long lastModified() | 获取最后一次的修改时间,毫秒值 |
public String[ ] list() | 获取指定目录下的所有文件或文件目录中的名称数组 |
public File[ ] listFiles() | 获取指定目录下的所有文件或者文件目录中的 File 数组 |
代码示例:以D:/Document/test.txt 文件为例
public void test5(){
File file = new File("D:/Document/test.txt");
System.out.println("getName() : 获取文件的名称 : " + file.getParent());
System.out.println("getPath() : 获取File 对象中封装的路径 : " + file.getParent());
System.out.println("getAbsolutePath() : 获取绝对路径 : " + file.getAbsolutePath());
System.out.println("getAbsoluteFile() : 获取文件绝对路径 : " + file.getAbsoluteFile());
System.out.println("getParent() : 获取当前路径的父级路径 : " + file.getParent());
System.out.println("lastModify() : 文件最后一次修改的时间 : " + file.lastModified());
System.out.println("length() : 文件的长度 : " + file.length());
}
方法 | 描述 |
---|---|
String [ ] list() | 以字符串的形式返回当前路径下所有的文件和文件夹的名称 |
File [ ] listFile() | 以File 对象的形式返回当前路径下的所有文件和文件夹名称 |
Static File [ ] listRoots() | 获取计算机中的所有的盘符 |
public void test6() {
File file = new File("D:/Document");
System.out.println("以字符串的形式返回当前路径下所有的文件和文件夹名称:");
String[] fileList = file.list();
for (String str : fileList) {
System.out.println(str);
}
System.out.println("以File对象的形式获取当前路径下所有文件和文件夹名称:");
File[] files = file.listFiles();
for (File fil : files) {
System.out.println(fil);
}
System.out.println("获取计算机中所有的盘符");
File[] files1 = File.listRoots();
for (File fil1 : files1){
System.out.println(fil1);
}
}