IO流 - File()文件的相关知识
File文件
File【文件】: 是计算机中所有文件的抽象表示, 将来File对象目标可能存在,也可能不存在。
构造方法:
public File(String pathname)
public File(String parent,String child)
public File(File parent,String child)
路径:
绝对路径【完整路径】:D:\projects\IdeaProjects\bigdara32\java\src\com\shujia\day15\ketang\a1.txt
相对路径:java/src/com/shujia/day15/ketang/a1.txt
点击查看代码
public class FileDemo1 {
public static void main(String[] args) {
File file = new File("java/src/com/shujia/day15/FileDemo1.java");
System.out.println(file);
System.out.println("================================");
File file1 = new File("java/src/com/shujia/day15", "FileDemo1.java");
System.out.println(file1);
System.out.println("================================");
File file2 = new File("java/src/com/shujia/day15");
File file3 = new File(file2, "FileDemo1.java");
System.out.println(file3);
}
}
基本功能
创建功能
public boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
删除功能
public boolean delete()
重命名功能
public boolean renameTo(File dest)
点击查看代码
public class FileDemo2 {
public static void main(String[] args) throws Exception{
File file1 = new File("src/com/shujia/day15/a.txt");
// public boolean createNewFile()创建一个文件
System.out.println(file1.createNewFile());
File file2 = new File("src/com/shujia/day15/aafu");
// public boolean mkdir() 创建单极文件夹
System.out.println(file2.mkdir());
System.out.println("============================");
File file3 = new File("src/com/shujia/day15/bbb/bb/b");
// public boolean mkdirs();创建多级文件夹
System.out.println(file3.mkdirs());
// 删除功能
// public boolean delete()只能删除空文件夹,或一个文件
// System.out.println(file1.delete());
// System.out.println(file2.delete());
System.out.println(file3.delete());
// 重命名功能
// public boolean renameTo(File dest)
File file5 = new File("src/com/shujia/day15/student.txt");
System.out.println(file1.renameTo(file5));
}
}
判断功能
public boolean isDirectory()
public boolean isFile()
public boolean exists()
public boolean canRead()
public boolean canWrite()
public boolean isHidden()
点击查看代码
// public boolean isDirectory()
//判断他是否是一个文件夹
File file = new File("src/com/shujia/day15/student.txt");
System.out.println(file.isDirectory());
// public boolean isFile() 判断是否为一个文件
System.out.println(file.isFile());
// public boolean exists()
System.out.println(file.exists());
// public boolean canRead()
System.out.println(file.canRead());
// public boolean canWrite()
System.out.println(file.canWrite());
// public boolean isHidden() 是否是隐藏的
System.out.println(file.isHidden());
基本获取功能
public String getAbsolutePath()
public String getPath()
public String getName()
public long length()
public long lastModified()
点击查看代码
File file = new File("src/com/shujia/day15/student.txt");
String path1 = file.getAbsolutePath(); //获取文件的绝对路径
System.out.println(path1);
String path2 = file.getPath();//获取文件的相对路径
System.out.println(path2);
String name = file.getName();//获取文件的名字
System.out.println(name);
long length = file.length();
System.out.println(length);//该文件的长度
//public long lastModified() 获取上一次修改的时间戳【毫秒级别的】
// System.out.println(file.lastModified());
System.out.println(file.lastModified());
String time = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 a").format(new Date(file.lastModified()));
System.out.println(time);
高级获取功能
public String[] list()
public File[] listFiles()
点击查看代码
File file = new File("src/com/shujia/day15");
//public String[] list() 将目录下所有的文件以及文件夹的 名字放到一个数组中返回
String[] list = file.list();
if(list != null){
for (String s : list) {
System.out.println(s);
}
}
//public File[] listFiles() 将目录下所有的文件以及文件夹都封装成一个一个的File对象放到一个数组中
File[] files = file.listFiles();
if(list != null){
for (File file1 : files) {
System.out.println(file1);
}
}
/需求:获取day15目录下所有.txt后缀的文件(两种方法)
点击查看代码
public static void main(String[] args){
File file1 = new File("src/com/shujia/day15");
File[] file = file1.listFiles();
if(file!=null){
for (File f : file) {
if(f.isFile() && f.getName().endsWith(".txt")){
System.out.println(f);
}
}
}
}
public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter) 文件名称过滤器的实现思想及代码
点击查看代码
public static void main(String[] args) {
File file1 = new File("src/com/shujia/day15");
File[] files = file1.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File f = new File(dir, name);
return f.isFile()&&f.getName().endsWith(".txt");
}
});
for (File file : files) {
System.out.println(file);
}
}