import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.io.FileFilter;
public class fileDemo{
public static void main(String [] args){
//fileMethod();
//fileApi();
//fileApiTwo();
//fileFilter();
//System.out.println(fibonacci(53));
}
//使用递归实现 斐波那契数列: 1 1 2 3 5 8 13 21 34 ...输入 n,就输出到第n个斐波那契数
public static int fibonacci(int num){
if(num <= 0){return 0;}
if(num == 1 || num == 2){
return 1;
}else{
return fibonacci(num - 1) + fibonacci(num - 2);
}
}
//FileFilter 文件过滤
public static void fileFilter(){
File file = new File("D:\\java\\txt\\javaSE\\File");
File [] files = file.listFiles(new FileFilter(){
public boolean accept (File file){
return file.getName().equals("fileDemo.java");
}
});
System.out.println(Arrays.toString(files));
}
public static void fileApiTwo(){
String parentDirectory = "D:\\java\\txt\\javaSE\\File";
//mkdir() 和 mkdirs() 都是创建目录,mkdir只能创建一级目录,而mkdirs可以创建多级目录
File file = new File(parentDirectory+File.separator+"Directory");
if(!file.exists()){
file.mkdir();
System.out.println("文件是否创建成功:"+file.exists());
}
//手动在文件里面创建3个文件 one.txt two.txt three.txt
// File [] listFiles() 返回路径名字所有的子目录及子文件。
File [] files = file.listFiles();
System.out.println(Arrays.toString(files));
//好了,把他们全部删除.注意,文件夹里面有文件时,不能直接删除
delAllDirectory(file);
}
//删除所有文件的递归方法
public static void delAllDirectory(File path){
if(!path.exists() || !path.isDirectory() ){
return ;
}
File[] files = path.listFiles();
if(null != files){
for(File f : files){
if(f.isDirectory()){
delAllDirectory(f);
}
f.delete();
}
path.delete();
}
}
/**
File 文件操作对象
通常只用于表示文件的信息(大小、名称等),不能对文件的内容进行访问。
*/
public static void fileApi(){
String parentDirectory = "D:\\java\\txt\\javaSE\\File";
File file = new File(parentDirectory+File.separator+"HelloWorld.txt");
System.out.println(file);
//File(fileName) 获取文件(目录)对象,如果不存在时返回FALSE,大小为0
System.out.println("文件是否存在:"+file.exists());
System.out.println("文件大小:"+file.length());
file = new File(parentDirectory,"HelloJava.txt");
//文件不存在时,创建
try{
if(!file.exists()){
file.createNewFile();
}
}catch(IOException e){
e.printStackTrace();
}
System.out.println("文件创建后是否存在:"+file.exists());
System.out.println("文件大小:"+file.length());
//文件存在时,删除
if(file.exists()){
file.delete();
}
System.out.println("文件删除后是否存在:"+file.exists());
System.out.println("文件大小:"+file.length());
}
public static void fileMethod(){
String parentDirectory = "D:\\java\\txt\\javaSE\\File";
File file = new File(parentDirectory);
ystem.out.println(file.exists());
System.out.println();
System.out.println(file.getName());
System.out.println(file.canWrite());//是否可写
System.out.println(file.canRead());//是否可读
System.out.println(file.getAbsolutePath());//获取绝对路径
System.out.println(file.length());//文件字节大小
System.out.println(new Date(file.lastModified()));//最后修改时间
System.out.println(file.getParentFile());//上级目录
System.out.println(file.isHidden());//是否隐藏文件
System.out.println(file.isAbsolute());//判断是否绝对路径
}
}