createNewFile():
/*
* 在当前目录下创建新建文件:test.txt
*
*/
File file=new File("./test.txt");
/**
* boolean exists()
* 判断当前File表示的路径下是否已经存在对应的文件或目录
*/
if(!file.exists()) {
file.createNewFile();
System.out.println("文件已经创建");
}else {
System.out.println("文件已经存在");
}
delete()方法删除文件夹:
File dir=new File("demo");
if(dir.exists()) {
/*
* delete删除目录要求目录必须是空目录
*/
dir.delete();
System.out.println("目录已经删除");
}else {
System.out.println("目录不存在");
}
delete()方法删除文件
/*
* 将当前目录下test.txt文件删除
* 相对目录中./可以不写默认就是当前目录
*/
File file=new File("test.txt");
if(file.exists()) {
file.delete();
System.out.println("文件已删除");
}else {
System.out.println("文件不存在");
}
删除文件及其子文件
public static void delete(File file) {
if(file.isDirectory()) {
//首先清空该目录
//获取目录中所有子项
File[] subs=file.listFiles();
//遍例逐个子项逐个删除
for(int i=0;i<subs.length;i++) {
File sub=subs[i];
/*
* 递归调用
* 一个方法内部调用自己本身的操作称为递归调用
* 使用递归调用要注意:
* 1.递归次数尽量少,因为递归开销大,效率差
* 2.递归操作必须被一个分支语句控制,不能必定执行,否则就是死循环,并最终
* 造成内存溢出导致程序瘫痪
*/
delete(sub);
}
}
file.delete();
}
/**
* java.io.file
* file的每一个实例用于表示一个文件或目录。
* 使用file可以
* 1.访问其表示文件的目录或者目录属性(名字大小)
* 2.操作文件或, 目录(创建删除)
* 3.访问一个目录的子项内容
* 不能访问文件数据
* @author soft01
*
*/
public class FileDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* File创建时需要指定路径
* 路径通常相对路径,绝对路径无法做到
* 平台无关性window和linux路径写法不同
* 相对路径中的./为当前目录,具体是哪里要看
* 当前程序运行环境而定,在eclipse中运行时指的是当前程序所在的项目目录
*/
File file=new File("./demo.txt");
String name=file.getName();
System.out.println(name);
long length=file.length();
System.out.println(length+"字节");
boolean cr=file.canRead();
boolean cw=file.canWrite();
System.out.println(cr);
System.out.println(cw);
boolean ih=file.isHidden();
System.out.println("隐藏文件:"+ih);
}
isDirectory()和isFile()方法:
File dir=new File(".");
/*
*boolean isFile()
*判断file表示的是否是文件
* boolean isDirectory()
* 判断file表示的是否是目录
* dir.isFile();
dir.isDirectory();
*
*/
if(dir.isDirectory()) {
/*
* File[] listFiles()
* 获取当前目录下所有的子项,以一个File数组形式返回,每个元素表示其中一个子项
*/
File[] subs=dir.listFiles();
System.out.println(subs.length);
for(int i=0;i<subs.length;i++) {
System.out.println(subs[i].getName());
}
}
}
/**
* 重载listFiles方法
* Files[] listFiles(FileFilter filter)
* 该方法在获取该目录中子项的过程重利用参数给定的过滤器
* 将满足其要求的子项返回,其余忽略
* @author soft01
*
*/
public class ListFilesDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir=new File(".");
if(dir.isDirectory()) {
FileFilter filter=new FileFilter() {
@Override
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++) {
System.out.println(subs[i].getName());
}
}
}
}
mkdir()方法:
/*
* 当前目录下新建一个demo目录
*/
File dir=new File("demo");
if(!dir.exists()) {
dir.mkdir();
System.out.println("文件夹已经创建");
}else {
System.out.println("目录已经存在");
}
mkdirs()方法:
/*
* 在当前目录下新建目录:a/b/c/d/e/f目录
*
*/
File dir=new File("a/b/c/d/e/f");
if(!dir.exists()) {
/*
* 该方法会将不存在的父目录一同创建出来,而mkdir方法若父目录不存在
* 则创建失败
*
*/
dir.mkdirs();
System.out.println("目录已经创建");
}else {
System.out.println("目录已经存在");
}