import java.io.File;
//import java.io.FilenameFilter;
public class FileDemo
{
/**
* File的五种构造方式。一些非常有用的方法。
*/
public static void main(String[] args)
{
File f1=new File("abc.txt");
File f2=new File("e:\\WorkSpace\\demo\\abc.txt");
File f3=new File("e:\\WorkSpace\\demo","abc.txt");
File f=new File("e:\\WorkSpace\\demo");
File f4=new File(f,"abc.txt");
File f5=new File("e:"+File.separator+"WorkSpace"+File.separator+"demo"+File.separator+"abc.txt");
System.out.println("f1"+f1);
System.out.println("f2"+f2);
System.out.println("f3"+f3);
System.out.println("f4"+f4);
System.out.println("f5"+f5);
System.out.println(f2.getPath());//是相对路径获取的就是相对路径,是绝对路径获取的就是绝对路径。
System.out.println(f1.getAbsolutePath());//获取绝对路径,不管给出的是相对路径还是绝对路径。
System.out.println(f1.getParent());//只有相对路径的话,返回值为空。
System.out.println(f2.getParent());
/*String[] arr=f.list(new FilenameFilter()//f通过list传递的boolean值确定是否被过滤。true不被过滤,false被过滤。
{
@Override
public boolean accept(File dir, String name)
{
return name.endsWith(".java");
}
});
System.out.println(arr);*/
System.out.println(f.isDirectory());//判断是否为文件夹
System.out.println(f1.isFile());//判断是否为文件
}
}
import java.io.File;
public class FileDemo2
{
/**
* @利用递归打印文件夹中的内容
*/
public static void main(String[] args)
{
File f=new File("e:\\WorkSpace");
showDir(f);
}
public static void showDir(File dir)
{
System.out.println(dir);
File[] arr=dir.listFiles();
for(int x=0;x<arr.length;x++)
{
if(arr[x].isDirectory())
showDir(arr[x]);
else
System.out.println(arr[x]);
}
}
}
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class FileDemo2
{
/**
* @打印删除目录的改进版
*/
public static void main(String[] args)
{
File f=new File("e:\\WorkSpace\\demo\\one");
removeDir(f);
showDir(f,0);
}
public static void showDir(File dir,int level)
{
System.out.println(getLevel(level)+dir.getName());
level++;
//System.out.println(dir);
File[] arr=dir.listFiles();
for(int x=0;x<arr.length;x++)
{
if(arr[x].isDirectory())
showDir(arr[x],level);
else
System.out.println(getLevel(level)+arr[x]);
}
}
public static String getLevel(int level)
{
StringBuilder sb=new StringBuilder();
sb.append("|--");
for(int x=0;x<level;x++)
{
sb.insert(0, "| ");
}
return sb.toString();
}
public static void removeDir(File dir)
{
File[] arr=dir.listFiles();
for(int x=0;x<arr.length;x++)
{
if(arr[x].isDirectory())
removeDir(arr[x]);
else
arr[x].delete();
}
dir.delete();//全部内容删除后删除目录文件夹。
}
public static void fileToList(File dir,List<File> list)
{
File[] arr=dir.listFiles();
for(File file:arr)
{
if(file.isDirectory())
fileToList(file, list);
else
{
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
public static void writeToFile(List<File> list,String javalistfile)//制作文件目录文件
{
BufferedWriter bw=null;
try
{
bw=new BufferedWriter(new FileWriter(javalistfile));
for(File f:list)
{
String path=f.getAbsolutePath();
bw.write(path);
bw.newLine();
bw.flush();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}