目录:
1.文件属性查询操作
2.创建.txt文件
3.删除.txt文件
4.创建文件夹
5.删除文件夹
6.获取当前目录下所有文件夹的名称
7.文件过滤
1.文件属性查询操作
package file;
import java.io.File;
/**
* io包:io是两个单词,分别是input和output,即:输入与输出
* java.io.File
* File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)
* 使用File可以做到:
* 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
* 2:创建和删除文件或目录
* 3:访问一个目录中的子项
* 但是File不能访问文件数据.
*/
public class FileDemo {
public static void main(String[] args) {
File file = new File("./demo.txt");
//获取名字
String name = file.getName();
System.out.println(name);
//获取文件长度,单位是字节
long len = file.length();
System.out.println(len+"字符");
//是否是隐藏的
boolean isHidden = file.isHidden();
System.out.println("是否隐藏:"+isHidden);
//是否可读
boolean cr = file.canRead();
//是否可写
boolean cw = file.canWrite();
System.out.println("是否可读:"+cr);
System.out.println("是否可写:"+cw);
}
}
2.创建.txt文件
package file;
import java.io.File;
import java.io.IOException;
/**
* 使用File创建一个新文件
*/
public class CreateNewFileDemo {
public static void main(String[] args) throws IOException {
//在当前目录下新建一个文件:test.txt
File file = new File("./test.txt");
//boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录
if(file.exists()){
System.out.println("该文件已存在!");
}else{
file.createNewFile();//将File表示的文件创建出来
System.out.println("文件已创建!");
}
}
}
3.删除.txt文件
package file;
import java.io.File;
/**
* 使用File删除一个文件
*/
public class DeleteFileDemo {
public static void main(String[] args) {
//将当前目录下的test.txt文件删除
/*
相对路径中"./"可以忽略不写,默认就是从当前目录开始的。
*/
File file = new File("test.txt");
if(file.exists()){
file.delete();
System.out.println("文件已删除!");
}else{
System.out.println("文件不存在!");
}
}
}
4.创建文件夹
package file;
import java.io.File;
/**
* 使用File创建目录
*/
public class MkDirDemo {
public static void main(String[] args) {
//在当前目录下新建一个目录:demo
File dir = new File("demo");
if(dir.exists()){
System.out.println("该目录已存在!");
}else{
// dir.mkdir();//如果所在的父目录不存在则创建失败!
dir.mkdirs();//会将所有不存在的父目录一同创建出来
System.out.println("该目录已创建!");
}
}
}
5.删除文件夹
package file;
import java.io.File;
/**
* 删除一个目录
*/
public class DeleteDirDemo {
public static void main(String[] args) {
//将当前目录下的demo目录删除
File dir = new File("./demo");
if(dir.exists()){
dir.delete();//删除目录时只能删除空目录!
System.out.println("目录已删除!");
}else{
System.out.println("目录不存在!");
}
}
}
6.获取当前目录下所有文件夹的名称
package file;
import java.io.File;
/**
* 访问一个目录中的所有子项
*/
public class ListFilesDemo1 {
public static void main(String[] args) {
//获取当前目录中的所有子项
File dir = new File(".");
/*
boolean isFile()
判断当前File表示的是否为一个文件
boolean isDirectory()
判断当前File表示的是否为一个目录
*/
if(dir.isDirectory()){
/*
File[] listFiles()
将当前目录中的所有子项返回。返回的数组中每个File实例表示其中的一个子项
*/
File[] subs = dir.listFiles();
System.out.println("当前目录包含"+subs.length+"个子项");
for(int i=0;i<subs.length;i++){
File sub = subs[i];
System.out.println(sub.getName());
}
}
}
}
7.文件过滤
package file;
import java.io.File;
import java.io.FileFilter;
/**
* 重载的listFiles方法可以传入一个文件过滤器,然后只将该目录中符合过滤器要求的子项返回。
*/
public class ListFilesDemo2 {
public static void main(String[] args) {
//获取当前目录中所有名字以"."开始的子项
File dir = new File(".");
if(dir.isDirectory()){
FileFilter filter = new FileFilter() {
/*
实现文件过滤器接口时,必须重写方法accept。这个方法就是过滤方法
将参数file看作是要过滤的子项,当该子项符合过滤要求需要保留时则
accept方法应当返回true,否则返回false
*/
public boolean accept(File file) {
String name = file.getName();//获取要过滤的该项内容的名字
System.out.println("正在过滤子项:"+name);
return name.startsWith(".");//名字是否是以"."开始的
}
};
File[] subs = dir.listFiles(filter);
System.out.println("当前目录中满足条件的子项有:"+subs.length+"个");
for(int i=0;i<subs.length;i++){
File sub = subs[i];
System.out.println(sub.getName());
}
}
}
}
8.
9.