----------android培训、java培训、java学习型技术博客、期待与您交流! -----------
1,file的的相对路径和绝对路径
file创建时可以用相对路径,也可以用绝对路径,那么获取路径时就是根据创建是用的路径来获取。
public static void consMethod(){
//相对路径
File f1 = new File("a.txt");
//两个参数,前面的是父目录,后面的参数是文件名
File f2 = new File("c:/abc","a.txt");
//斜杠可以解决string类型的转义问题不用输入"\\",只需要输入"/"
File f3 = new File("c:/abc");
//也可以用文件对象最为参数
File f4 = new File(f3,"a.txt");
sop(f1);
sop(f2);
sop(f4);
}
验证结果:

2,file的常用方法
public static void method_1() throws IOException{
File f = new File("c:/file1.txt");
File f1 = new File("d:/file2.txt");
//说明:如果指定文件不存在,则创建,返回true
// 如果文件存在,则不用创建,返回false
sop(f.createNewFile());
//说明:如果指定文件不存在,则不用删除,返回false
// 如果文件存在,则删除,返回true
sop(f.delete());
//退出时删除文件
f.deleteOnExit();
//判断文件是否能执行
sop(f.canExecute());
//判断文件是否存在
sop(f.exists());
//判断是文件还是目录
sop(f.isDirectory());
//判断是否是文件
sop(f.isFile());
//判断是够创建目录文件夹成功.同时创建文件夹
sop(f.mkdir());
//创建多级目录
sop(f.mkdirs());
//获取父目录,创建时必须是绝对路径,如果是相对路径,则为null
sop(f.getParent());
//相对路径
sop(f.getPath());
//最后修改实间
sop(f.lastModified());
//获取文件长度
sop(f.length());
//绝对路径
sop(f.getAbsolutePath());
f.renameTo(f1);
}
验证结果:
3,文件的遍历
a,读取根目录
public static void listRoots(){
//列出文件系统 的根目录
File[] files =File.listRoots();
for(File f : files){
System.out.println(f);
}
}
验证结果:
b,列出指定目录下的文件,不包含子目录,就是当前目录
public static void listDemo(){
//列出指定目录下的文件,不包含子目录,就是当前目录
File f = new File("e:/");
String[] names = f.list();
for(String name : names){
System.out.println(name);
}
}
验证结果:
c,通过实现FilenameFilter接口来过滤文件,
public static void listFilterDemo(){
File f = new File("D:/workspace/workspace/Learn/src");
//通过实现FilenameFilter接口来过滤文件,
/*
* 1,如果返回true,则加入字符数组中
* 2,如果返回false,则不用加入字符数组中
* */
String[] arr = f.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(".java");
}
});
for(String name : arr){
System.out.println(name);
}
}
验证结果:
d,列出指定目录下的文件对象,不是文件名称,常用这种方法
public static void listDemo2(){
//列出指定目录下的文件对象,不是文件名称,常用这种方法
File dir = new File("c:/");
File[] files = dir.listFiles();
for(File f : files){
System.out.println(f.getName()+" :"+f.length());
}
}
验证结果:
e,遍历指定目录下的所有文件
public static void listDemo3(File dir){
//遍历指定目录下的所有文件
File[] files = dir.listFiles();
for(File f : files){
if(f.isDirectory())
listDemo3(f);
else
System.out.println(f.getName()+":\t"+f.length());
}
}
验证结果:
f,删除指定目录下的所有文件,包括目录
public static void removeDir(File dir){
//删除指定目录下的所有文件,包括目录
File[] files = dir.listFiles();
for(File f : files){
if(f.isDirectory())
removeDir(f);
else
System.out.println(f.getName()+"::\t"+f.delete());
}
System.out.println(dir.getName()+"::"+dir.delete());
}
验证结果:
g,利用遍历,将指定目录下的.java文件存在list引用的对象中
public static void getPath(File dir, List<File> list){
//利用遍历,将指定目录下的.java文件存在list引用的对象中
File[] files = dir.listFiles();
for(File f : files){
if(f.isDirectory())
getPath(f,list);
else
{
if(f.getName().endsWith(".java"))
list.add(f);
}
}
}
调用函数:
public static void main(String[] args) throws IOException {
File dir = new File("D:/workspace/workspace/Learn");
List<File> list = new ArrayList<File>();
getPath(dir, list);
System.out.println(list.size());
}
验证结果:
h,将指定目录下的文件的绝对路径存储在一个文件中
public static void writeToFile(List<File> list, String javalistfile) throws IOException{
//将指定目录下的文件的绝对路径存储在一个文件中
BufferedWriter bufw = new BufferedWriter(new FileWriter(javalistfile));
for(File f : list){
String path = f.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush();
}
bufw.close();
}
调用函数是:
public static void main(String[] args) throws IOException {
File dir = new File("D:/workspace/workspace/Learn");
List<File> list = new ArrayList<File>();
getPath(dir, list);
System.out.println(list.size());
writeToFile(list, "c:/save.txt");
}
验证结果:
----------android培训、java培训、java学习型技术博客、期待与您交流! -----------