一、File类的概述和构造方法
1、File类的概述:File更应该叫做一个路径
(1)文件路径或者文件夹路径
(2)路径分为绝对路径和相对路径
(3)绝对路径是一个固定的路径,从盘符开始
(4)相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下
查看API指的是当前路径
文件和目录路径名的抽象表示形式
2、构造方法
(1)File(String pathname):根据一个路径得到File对象
(2)File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
(3)File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
二、File类的创建功能
1、public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
2、public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
3、public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
注意事项: 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
三、File类的重命名和删除功能
1、重命名和删除功能
(1)public boolean renameTo(Filedest):把文件重命名为指定的文件路径
(2)public boolean delete():删除文件或者文件夹
2、重命名注意事项
如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。
3、删除注意事项:
Java中的删除不走回收站。
要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
四、File类的判断功能
1、public boolean isDirectory():判断是否是目录
2、public boolean isFile():判断是否是文件
3、public boolean exists():判断是否存在
4、public boolean canRead():判断是否可读
5、public boolean canWrite():判断是否可写
6、public boolean isHidden():判断是否隐藏
五、File类的获取功能
1、public String getAbsolutePath():获取绝对路径
2、public String getPath():获取路径
3、public String getName():获取名称
4、public long length():获取长度。字节数
5、public long lastModified():获取最后一次的修改时间,毫秒值
6、public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
7、public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
六、文件名称过滤器
1、public String[] list(FilenameFilter filter)
2、public File[] listFiles(FileFilter filter)
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class FileClass {
public static void main(String[] args) throws IOException {
/*
* 一、File类的概述和构造方法
1、File类的概述:File更应该叫做一个路径
(1)文件路径或者文件夹路径
(2)路径分为绝对路径和相对路径
(3)绝对路径是一个固定的路径,从盘符开始
(4)相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下
查看API指的是当前路径
文件和目录路径名的抽象表示形式
2、构造方法
(1)File(String pathname):根据一个路径得到File对象
(2)File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
(3)File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
二、File类的创建功能
1、public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
2、public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
3、public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
注意事项: 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
三、File类的重命名和删除功能
1、重命名和删除功能
(1)public boolean renameTo(File dest):把文件重命名为指定的文件路径
(2)public boolean delete():删除文件或者文件夹
2、重命名注意事项
如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。
3、删除注意事项:
Java中的删除不走回收站。
要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
四、File类的判断功能
1、public boolean isDirectory():判断是否是目录
2、public boolean isFile():判断是否是文件
3、public boolean exists():判断是否存在
4、public boolean canRead():判断是否可读
5、public boolean canWrite():判断是否可写
6、public boolean isHidden():判断是否隐藏
五、File类的获取功能
1、public String getAbsolutePath():获取绝对路径
2、public String getPath():获取路径
3、public String getName():获取名称
4、public long length():获取长度。字节数
5、public long lastModified():获取最后一次的修改时间,毫秒值
6、public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
7、public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
六、文件名称过滤器
1、public String[] list(FilenameFilter filter)
2、public File[] listFiles(FileFilter filter)
* */
initFile();
createFile();
renameFile();
judgeFile();
getFilePath();
filenameFilter();
}
private static void filenameFilter() {
System.out.println("==============文件过滤器=============");
File file = new File("/Users/cat/Desktop");
String[] strA = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File file1 = new File(dir,name);
return file1.isFile() && file1.getName().endsWith(".jpg");
}
});
for (String str:strA){
System.out.println(str);
}
}
private static void getFilePath() {
System.out.println("==============获取=============");
File file1 = new File("test");
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getPath());
System.out.println(file1.getName());
System.out.println(file1.length());
Date date = new Date(file1.lastModified());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(date));
File file2 = new File("/Users/cat/Desktop/工作日报");
String[] strA = file2.list();
for(String str:strA){
System.out.println(str);
}
File[] fileA = file2.listFiles();
for(File file:fileA){
System.out.println(file.getAbsolutePath());
}
//输出所有图片的路径
File file3 = new File("/Users/cat/Desktop");
File[] fileB = file3.listFiles();
for(File file:fileB){
if(file.isFile() && file.getName().endsWith(".jpg")){
System.out.println(file.getAbsolutePath());
}
}
}
private static void judgeFile() throws IOException {
System.out.println("==============判断=============");
File file1 = new File("test1");
System.out.println(file1.createNewFile());
System.out.println(file1.exists());
file1.setReadable(false);
file1.setWritable(false);
System.out.println(file1.canWrite());
System.out.println(file1.canRead()); //Windows系统下默认所有文件都是可读的
System.out.println(file1.isHidden());
}
private static void renameFile() {
System.out.println("==============改名,删除=============");
File file1 = new File("test1");
File file2 = new File("change");
System.out.println(file1.renameTo(file2));
File file3 = new File("change");
File file4 = new File("/Users/cat/Desktop/22.rtf");
System.out.println(file3.renameTo(file4));
System.out.println(file4.delete());
}
private static void createFile() throws IOException {
System.out.println("==============创建文件/夹=============");
File file1 = new File("test1");
System.out.println(file1.createNewFile());
File file2 = new File("aaa.txt");
System.out.println(file2.mkdir());
File file3 = new File("bbb/ccc");
System.out.println(file3.mkdirs());
}
public static void initFile() {
System.out.println("==============文件路径=============");
File file = new File("/Users/cat/Desktop/11.rtf");//文件路径
System.out.println(file.exists());
File file1 = new File("test");//文件路径
System.out.println(file1.exists());
File file2 = new File("text");//文件路径
System.out.println(file2.exists());
String parent = "/Users/cat/Desktop/";
String child = "11.rtf";
File file3 = new File(parent,child);//文件路径
System.out.println(file3.exists());
File parentFile = new File("/Users/cat/Desktop/");
String childStr = "11.rtf";
File file4 = new File(parentFile,childStr);//文件路径
System.out.println(file4.exists());
}
}