/
),完整描述文件或目录位置的路径,包含从根目录到目标的 完整层级结构。C:.......;D:......File:
方法名称 | 说明 |
---|---|
public File(String pathname) | 根据文件路径创建文件对象 |
public File(String parent, String child) | 根据父路径名字符串和子路径名字符串创建文件对象 |
public File(File parent, String child) | 根据父路径对应文件对象和子路径名字符串创建文件对象 |
下面把这三种对象的创建过程展示一下:
package www.FileClass.com;
import java.io.File;
public class FileDemo1 {
public static void main(String[] args) {
//public File(String pathname) 根据文件路径创建文件对象
//public File(String parent, String child) 根据父路径名字符串和子路径名字符串创建文件对象
//public File(File parent, String child) 根据父路径对应文件对象和子路径名字符串创建文件对象
//1.根据字符串所表示的路径,变成File对象(第一个构造)
String str="F:\\Test\\w.txt ";
//把字符串放进FIle就代表文件的路径
File file=new File(str);
System.out.println(file);
//2.父级路径:F:\Test(第二个构造)
//子级路径:w.txt
String str1="F:\\Test";
String str2="w.txt";
File file1=new File(str1,str2);
System.out.println(file1);
//3.把一个File表示的路径和String表示路径进行拼接
File file2=new File("F:\\Test");
String str3="w.txt";
File file3=new File(file2,str3);
System.out.println(file3);
}
}
File表示什么?
绝对路径和相对路径的意思?
绝对路径带盘符,相对路几个不带盘符
判断获取:
方法名称 | 说明 |
---|---|
public boolean isDirectory() | 判断此路径名表示的 File 是否为文件夹 |
public boolean isFile() | 判断此路径名表示的 File 是否为文件 |
public boolean exists() | 判断此路径名表示的 File 是否存在 |
public long length() | 返回文件的大小(字节数量) |
public String getAbsolutePath() | 返回文件的绝对路径 |
public String getPath() | 返回定义文件时使用的路径 |
public String getName() | 返回文件的名称,带后缀 |
public long lastModified() | 返回文件的最后修改时间(时间毫秒值) |
前三个方法示例
package www.FileClass.com;
import java.io.File;
public class FileDemo2 {
public static void main(String[] args) {
// public boolean isDirectory() 判断此路径名表示的 File 是否为文件夹
// public boolean isFile() 判断此路径名表示的 File 是否为文件
// public boolean exists() 判断此路径名表示的 File 是否存在
//对文件的路径进行判断
//我已经在这个路径创建了txt文件
File file = new File("E:\\zjhapp\\aaa.txt");
System.out.println(file.isDirectory());//是否是文件夹false
System.out.println(file.isFile());//是否是文件true
System.out.println(file.exists());//是否存在true
//对文件夹的路径进行判断
File file1 = new File("E:\\zjhapp");
System.out.println(file1.isDirectory());//是否是文件夹true
System.out.println(file1.isFile());//是否是文件false
System.out.println(file1.exists());//是否存在true
//对不存在的路径进行判断
File file2 = new File("E:\\www");
System.out.println(file2.isDirectory());//是否是文件夹false
System.out.println(file2.isFile());//是否是文件false
System.out.println(file2.exists());//是否存在false
}
}
后四个方法示例
package www.FileClass.com;
import java.io.File;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class FileDemo3 {
public static void main(String[] args) {
// public long length() 返回文件的大小(字节数量)
// public String getAbsolutePath() 返回文件的绝对路径
// public String getPath() 返回定义文件时使用的路径
// public String getName() 返回文件的名称,带后缀
// public long lastModified() 返回文件的最后修改时间(时间毫秒值)
//1.length 返回文件的大小(字节数量)
//只能获取文件的大小,单位是字节
//无法获取文件夹的大小
File file = new File("E:\\zjhapp\\aaa.txt");
long len=file.length();
System.out.println(len);
System.out.println("======================");
// 2.getAbsolutePath() 返回文件的绝对路径
File file1 = new File("E:\\zjhapp\\aaa.txt");
String absolutePath = file1.getAbsolutePath();
System.out.println(absolutePath);
//3.public String getPath() 返回定义文件时使用的路径
File file2 = new File("E:\\zjhapp\\aaa.txt");
String path = file2.getPath();//定义文件的事实和
System.out.println(absolutePath);
// 4.getname() 获取名字如果文件有拓展名就会把拓展名也提取出来
File file3=new File("E:\\zjhapp\\aaa.txt");
String name=file3.getName();
System.out.println(name);
// 5.public long lastModified() 返回文件的最后修改时间(时间毫秒值)
File file4=new File("E:\\zjhapp\\aaa.txt");
long time=file4.lastModified();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String date = LocalDateTime.now().format(formatter);
System.out.println(date);
}
}
创建删除
方法名称 | 说明 |
---|---|
public boolean createNewFile() | 创建一个新的空的文件 |
public boolean mkdir() | 创建单级文件夹 |
public boolean mkdirs() | 创建多级文件夹 |
public boolean delete() | 删除文件、空文件夹 |
前三个创建方法
package www.FileClass.com;
import java.io.File;
import java.io.IOException;
public class FileDemo4 {
public static void main(String[] args) throws IOException {
// public boolean createNewFile() 创建一个新的空的文件
// public boolean mkdir() 创建单级文件夹
// public boolean mkdirs() 创建多级文件夹
// public boolean delete() 删除文件、空文件夹
//delete默认只能删除文件和文件夹,detele方法直接删除不走回收站
// 1.createNewFile() 创建一个新的空的文件
// 文件不存在则创建成功,存在就创建失败
// 如果父路径不存在,那么就会有异常IOException
// createNewFile()方法创建的肯定是文件,如果文件中不带后缀名,则创建一个不带后缀名的文件
File file = new File("E:\\zjhapp\\www.txt");
boolean b=file.createNewFile();
System.out.println(b);
// mkdir() 创建"单级文件夹"
// 文件名不能重复
File file1 = new File("E:\\zjhapp\\aaa");
boolean c=file1.mkdir();
System.out.println(c);
// mkdirs() 创建多级文件夹
// 既可以创造单极的也可以创造多级的
File file2 = new File("E:\\zjhapp\\qq\\ww");
boolean d=file2.mkdirs();
System.out.println(d);
}
}
删除方法
package www.FileClass.com;
import java.io.File;
public class FileDemo5 {
public static void main(String[] args) {
/*
pubic boolean delete() 删除文件空文件夹
如果删除的是文件,则直接删除,不走回收站
如果删除的是空文件夹,直接删除不走回收站
删除有内容的文件夹,直接删除失败
*/
//创建File对象
File file = new File("E:\\zjhapp\\aaa.txt");
//删除:
boolean b = file.delete();
System.out.println(b);
}
}
获取并遍历
方法名称 | 说明 |
---|---|
public static File[] listRoots() | 列出可用的文件系统根 |
public String[] list() | 获取当前该路径下所有内容 |
public String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
public File[] listFiles() | 获取当前该路径下所有内容 |
public File[] listFiles(FileFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
public File[] listFiles(FilenameFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
第一第二第三方法
package www.FileClass.com;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
public class FileDemo7 {
public static void main(String[] args) {
// public static File[] listRoots() 列出可用的文件系统根
// public String[] list() 获取当前该路径下所有内容
// public String[] list(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
// public File[] listFiles() 获取当前该路径下所有内容
// public File[] listFiles(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
// public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
//1.listRoots 获取系统中所有的盘符,listRoots是静态方法
File[] arr = File.listRoots();
System.out.println(Arrays.toString(arr));
//2.list() 获取当前该路径下所有内容(仅能获取名字)
File f1 = new File("E:\\zjhapp");
String[] arr2 = f1.list();
for (String s : arr2) {
System.out.println(s);
}
System.out.println("================");
//3.list(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
//需求:我现在要获取D:\\aaa文件夹里面所有的txt文件
File f2 = new File("E:\\zjhapp");
String[] list = f2.list(new FilenameFilter() {
// accept方法形参,依次表示zjhapp文件夹里面的每一个文件或者文件夹路径
// 参数一:父级路径
// 参数二:子级路径
// 返回值:如果返回值为true,就表示当前路径被保留
// 反之,当前路径不会被保留
@Override
public boolean accept(File dir, String name) {
File f = new File(dir, name);
return f.isFile() && f.getName().endsWith(".txt");
}
});
System.out.println(Arrays.toString(list));
}
}
第四个方法:
package www.FileClass.com;
import java.io.File;
public class FileDemo6 {
public static void main(String[] args) {
// public File[] listFiles() 获取当前该路径下所有内容
//1.创建File对象
//当调用者 File 表示的路径不存在时,返回 null
//当调用者 File 表示的路径是文件时,返回 null
//当调用者 File 表示的路径是一个空文件夹时,返回一个长度为 0 的数组
//当调用者 File 表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在 File 数组中返回
//当调用者 File 表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在 File 数组中返回,包含隐藏文件
//当调用者 File 表示的路径是需要权限才能访问的文件夹时,返回null
File file = new File("E:\\zjhapp");
//2.获取zjhapp文件夹中的所有内容,把所有内容放到数组当中返回
File[] files = file.listFiles();
for (File file1 : files) {
//file1:依次表示zjhapp文件夹中的每一个文件或者文件夹
System.out.println(file1);
}
}
}
package www.FileClass.com;
import java.io.File;
public class FIleDemo8 {
public static void main(String[] args) {
// 掌握: File[] listFiles() 获取当前该路径下所有内容
// public File[] listFiles(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
// public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
File file = new File("E:\\zjhapp");
File[] files = file.listFiles();
for (File file1 : files) {
if(file1.isFile()&&file1.getName().endsWith(".txt"))
System.out.println(file1);
}
}
}
第五六个方法
package www.FileClass.com;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.util.Arrays;
public class FileDemo9 {
public static void main(String[] args) {
// public File[] listFiles(FileFilter filter) 利用文件名过滤器获取当前该路径下所有内容
// public File[] listFiles(FilenameFilter filter) 利用文件名过滤器获取当前该路径下所有内容
File file = new File("E:\\zjhapp");
// 调用listFiles(FileFilter filter)
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile()&&pathname.getName().endsWith(".txt");
}
});
System.out.println(Arrays.toString(files));
// 调用listFiles(FilenameFilter filter)
file.listFiles(new FilenameFilter() {
@Override
//第一个是父级路径,第二个是子级路径
public boolean accept(File dir, String name) {
File f = new File(dir, name);
return f.isFile()&&f.getName().endsWith(".txt");
}
});
System.out.println(Arrays.toString(files));
}
}