第一组: 基础方法
1.getName() 获取文件名称
2.length() 获取文件长度,目录长度不准确
3.lastModified() 获取最后一次修改时间 返回毫秒值
public static void main(String[] args) {
File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
File file3= new File("E:\\Apesource\\Java.Text");//不存在的文件
//1.getName() 获取文件名称
System.out.println(file1.getName());
System.out.println(file2.getName());
System.out.println(file3.getName());
//2.length() 只能获取文件的长度,目录不精致
System.out.println("文件名:" + file2.getName() + " 长度:" + file2.length());
System.out.println("文件名:" + file1.getName() + " 长度:" + file1.length());
//3.lastModified():获取最后一次的修改时间
System.out.println("文件名:" + file2.getName() + " 时间:" + file2.lastModified());
System.out.println("文件名:" + file2.getName() + " 时间:" + new Date(file2.lastModified()));
}
第二组: 获取路径
1.getAbsolutePath() 获取绝对路径
2.getPath() 获取路径
3. getCanonicalFile() 获取规范路径
public static void main(String[] args) throws IOException {
File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
File file3= new File("E:\\Apesource\\Java.Text");//不存在的文件
File file4 = new File("../yyy.txt");
//1.获取文件的绝对路径
System.out.println(file4.getAbsolutePath());
//2.获取文件的路径
System.out.println(file4.getPath());
//2.获取规范路径
System.out.println(file4.getCanonicalFile());
}
运行结果:
第三组: 判断和删除
1.exists():判断文件是否存在 返回boolean类型 2.delete():删除某个文件(夹) 文件夹必须为空才可以删除 不经过回收站 返回boolean类型
package com.mgl.io;
import java.io.File;
/**
* Tony 的 java
**/
@SuppressWarnings("all")
public class Demo3_ioMethod03 {
public static void main(String[] args) {
File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
File file2 = new File("E:\\Apesource\\Java\\Text\\text.txt");//指向文件
File file3= new File("E:\\Apesource\\Java.Text");//不存在的文件
File file = new File("E:\\123123");
//1.exists():判断文件是否存在
System.out.println(file1.getPath() + " 文件是否存在【" + file1.exists() + "】");
System.out.println(file2.getPath() + " 文件是否存在【" + file2.exists() + "】");
System.out.println(file3.getPath() + " 文件是否存在【" + file3.exists() + "】");
System.out.println("");
//2.delete():删除某个文件(夹) 文件夹必须为空才可以删除 不经过回收站
System.out.println(file2.getPath() + " 文件是否删除成功【" + file2.delete() + "】");
System.out.println(file2.getPath() + " 文件是否存在【" + file2.exists() + "】");
}
}
运行结果 :
第四组: 创建的文件
1.createNewFile(): 创建一个具体的文件,不可以创建文件夹(目录) 2.mkdir():创建文件夹 如果存在不创建, 他的上层目录不存在也不创建 3.mkdirs(): 创建多级目录
package com.mgl.io;
import java.io.File;
import java.io.IOException;
/**
* Tony 的 java
**/
@SuppressWarnings("all")
public class Demo04_ioMethod04 {
public static void main(String[] args) throws IOException {
File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
File file3 = new File("E:\\Apesource\\abc.txt");//不存在的文件
File file4 = new File("E:\\ABC");//不存在的文件
File file5 = new File("E:\\test\\ABC\\123");//不存在的文件
//1.createNewFile() 创建一个具体的文件,不可以创建文件夹(目录)
System.out.println(file3.createNewFile());
System.out.println(file4.createNewFile());
//2.mkdir()创建文件夹 如果存在不创建, 他的上层目录不存在也不创建
System.out.println(file4.mkdir());
System.out.println(file5.mkdir());
//3.mkdirs: 创建多级目录
System.out.println(file5.mkdirs());
}
}
第五组: 获取指定目录文件
1.list()方法 获取指定目录下的文件或目录的名称 返回的是一个字符串数组
2.listFiles() 获取指定目录下的文件或目录 返回类型是一个File数组
package com.mgl.io;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Tony 的 java
**/
@SuppressWarnings("all")
public class Demo5_ioMethod05 {
public static void main(String[] args) {
File file1 = new File("E:\\Apesource\\Java");
//1.list()方法 获取指定目录下的文件或目录的名称 返回的是一个字符串数组
String[] list = file1.list();
for (int i = 0; i < list.length; i++) {
System.out.println(list[i]);
}
System.out.println("------------------------------");
//2.listFiles() 获取指定目录下的文件或目录 返回类型是一个File数组
File[] files = file1.listFiles();
for (File file : files) {
System.out.print("【" + file.getName() + "】" + " ");
System.out.print("文件大小" + file.length() + " ");
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(file.lastModified());
String format = sdf.format(date);
//输出修改时间
System.out.println(format);
}
}
}
输出结果:
第六组: 判断对象是目录还是文件
1.isDirectory() :判断对象是不是目录 返回类型boolean
2.isFile() : 判断对象是不是文件 返回类型boolean
package com.mgl.io;
import java.io.File;
/**
* Tony 的 java
**/
@SuppressWarnings("all")
public class Demo6_ioMethod06 {
public static void main(String[] args) {
File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
File file2 = new File("E:\\Apesource\\Java\\Text\\demo1_io.txt");//指向文件
//1.isDirectory isFile 判断他是目录还是文件
System.out.println("f1是目录【" + file1.isDirectory() + "】");
System.out.println("f2是文件【" + file1.isDirectory() + "】");
}
}
返回结果:
3.遍历文件夹下的所有文件:递归+isDirectory+isFile
//2.深层遍历
public static void showFileTree(File dir){
File[] files = dir.listFiles();
for (File file : files) {
boolean isDir = file.isDirectory();
if (isDir == false){//是一个文件
System.out.print("文件名称为:" + file.getName());
System.out.println("文件大小为:" + file.length());
}else {//是一个目录
System.out.print("目录名称为:" + file.getName());
System.out.println("目录长度:" + file.list().length);
showFileTree(file);
}
}
}
第七组: 文件过滤
FileFilter() + endWith()
package com.mgl;
import java.io.File;
import java.io.FileFilter;
/**
* Tony 的 java
**/
@SuppressWarnings("all")
public class FileFilter_ {
public static void main(String[] args) {
//文件过滤
File file1 = new File("E:\\Apesource\\Java");//指向文件夹(目录)
File[] files = file1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
//endsWith() 方法用于测试字符串是否以指定的后缀结束。
if (pathname.getName().endsWith(".txt")){
return true;
}
return false;
}
});
for (int i =0;i < files.length;i++){
System.out.println(files[i]);
}
}
}