文件方法
File 使用
第一种方式 String
文件位置:
/Users/a1-6/Downloads
String s = "/Users/a1-6/Downloads/demo1/a.txt";
File file = new File(s);
System.out.println(file);
第二种方式 父String+子String
- 父级路径
- /Users/a1-6/Downloads/demo1
- 子级路径
- a.txt
- a.txt
String parent = "/Users/a1-6/Downloads/demo1";
String child = "a.txt";
File file1 = new File(parent, child);
System.out.println(file1);
第三种方式 父File 类+子String 字符串
File file2 = new File("/Users/a1-6/Downloads/demo1");
File file3 = new File(file2, "a.txt");
System.out.println(file3);
File 常见的成员方法
方法使用
- isDirectory:判断是否是文件夹
- isFile:判断是否是文件(常用)
- exists:判断文件是否存在
//1. 对一个文件的路径进行判断
File file = new File("/Users/a1-6/Downloads/demo1/a.txt");
//是否是路径
System.out.println(file.isDirectory());
//是否是文件
System.out.println(file.isFile());
//是否存在文件
System.out.println(file.exists());
//2. 对一个文件夹的路径进行判断
File file1 = new File("/Users/a1-6/Downloads/demo1");
//是否是路径
System.out.println(file1.isDirectory());
//是否是文件
System.out.println(file1.isFile());
//是否存在文件
System.out.println(file1.exists());
//3. 对一个文件夹的路径进行判断
File file2 = new File("/Users/a1-6/Downloads/demo1/c.txt");
//是否是路径
System.out.println(file2.isDirectory());
//是否是文件
System.out.println(file2.isFile());
//是否存在文件
System.out.println(file2.exists());
- length():获取文件的大小,b为单位 /1024 ->mb/1024 gb
- getAbsoluteFile:获取文件的绝对路径
- getPath:获取文件路径
- getName:获取文件姓名
- lastModified:上一次修改的时间
File file = new File("/Users/a1-6/Downloads/demo1/a.txt");
//文本的大小
System.out.println(file.length());
//文件的绝对路径
System.out.println(file.getAbsoluteFile());
//---
System.out.println("==========");
File file1 = new File("Demo/test/a.txt");
System.out.println(file1.getAbsoluteFile());
//定义时的路径
System.out.println("==========");
System.out.println(file1.getPath());
//获取文件名字(如果是文件夹则输出文件夹名字,如果是文件输出文件的名字)
System.out.println("=============");
System.out.println(file1.getName());
//输出上一次修改的时间 如何将毫秒值转换维年月日时分秒
long l = file.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date date = new Date(l);
String format = sdf.format(date);
System.out.println(format);
System.out.println(l);
- createNewFile
- mkdirs:使用路径创建新的文件夹
- delete
File file = new File("/Users/a1-6/Downloads/demo1/b.txt");
//1. 创建如果文件不存在则创建成功,否则失败
//2. 如果父级不存在 则在里面创建会失败
boolean newFile = file.createNewFile();
System.out.println(newFile);
//3. 如果直接创建一个不存在的文件,则会成功 但是无后缀
File file1 = new File("/Users/a1-6/Downloads/demo1/demo2");
System.out.println(file1.createNewFile());
//
// // 创建一个文件夹
// //1. 细节:路径是唯一的,如果存在 则会创建失败
// //2. mkdir只能创建单级文件夹,无法创建多级文件夹
// File file2 = new File("/Users/a1-6/Downloads/demo1/demo11");
// System.out.println(file2.mkdir());
// //使用 mkdirs 可以 创建多级文件夹
// File file3 = new File("/Users/a1-6/Downloads/demo1/demo11/demo1111/dem1/dem/de/m");
// System.out.println(file3.mkdirs());
//删除文件 不会走回收站
File file4 = new File("/Users/a1-6/Downloads/demo1/b.txt");
System.out.println(file4.delete());
//删除文件夹 如果是空文件夹则直接删除,如果不是空则删除失败
File file3 = new File("/Users/a1-6/Downloads/demo1/demo11/demo1111/dem1/dem/de/m");
- list
- listFiles 列出当下所有文件,可以进行筛选
public static void main(String[] args) {
// //当下的所有盘符
// File[] files = File.listRoots();
// System.out.println(Arrays.toString(files));
// //查看文件夹内所有文件
// File file = new File("/Users/a1-6/Downloads/demo1");
// String[] list = file.list();
// for (String s : list) {
// System.out.println(s);
// }
//list File file1 = new File("/Users/a1-6/Downloads/demo1");
String[] list = file1.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
if(file.isFile() && name.endsWith(".txt")){
return true;
}else return false;
}
});
System.out.println(Arrays.toString(list));
//listFiles
File file = new File("/Users/a1-6/Downloads/demo1");
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile() && f.getName().endsWith(".txt"))
System.out.println(f.getName());
}
}