File的操作

file的基本使用:

File f1 = new File("1.jpg");

File f2 = new File("C:\\myPicture\\1.jpg");

System.out.println("f1----"+f1);

System.out.println("f2----"+f2);

String absolutePath = f1.getAbsolutePath();

String absolutePath2 = f2.getAbsolutePath();

System.out.println("f1-absolutePath:---"+absolutePath);

System.out.println("f2-absolutePath:---"+absolutePath2);

String path = f1.getPath();

String path2 = f2.getPath();

System.out.println("f1path:---"+path);

System.out.println("f2path:---"+path2);

String f1Name = f1.getName();

String f2Name = f2.getName();

System.out.println("f1Name---"+f1Name);

System.out.println("f2Name---"+f2Name);

long f1Length = f1.length();

long f2Length = f2.length();

System.out.println("f1Length---"+f1Length);

System.out.println("f2Length---"+f2Length);

=========================================================================

f1----1.jpg

f2----C:\myPicture\1.jpg

f1-absolutePath:---D:\work\workspace\summba-site-serv-website\1.jpg

f2-absolutePath:---C:\myPicture\1.jpg

f1path:---1.jpg

f2path:---C:\myPicture\1.jpg

f1Name---1.jpg

f2Name---1.jpg

f1Length---0

f2Length---29965

=========================================================================

createNewFile()  boolean 创建文件

delete() boolean 执行删除,如果是文件直接删除(不去回收站,永久删除),如果是文件夹,必须是空文件夹才能被删除,

exists() boolean

isDirctory() boolean

isFile() boolean

mkdir() boolean 创建单级文件夹

mkdirs()boolean 创建多级文件夹

File f1 = new File("C:\\myPicture\\1.jpg");//本身存在1.jpg

File f2 = new File("C:\\myPicture\\a.jpg");//本身不存在a.jpg

try {

boolean f1createNewFile = f1.createNewFile();

boolean f2createNewFile = f2.createNewFile();

System.out.println(f1createNewFile);//false 不执行创建。本身已有不再创建

System.out.println(f2createNewFile);//true 执行创建。本身不存在就创建

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

=========================================================================

list() 得到的是该文件夹下面的所有文件及目录名

File f1dir = new File("C:\\myPicture");

String[] fidirListNames = f1dir.list();

for (String name : fidirListNames) {

System.out.println(name);

}

1.jpg

2.jpg

3.jpg

a.jpg

wenjianjia

=========================================================================

listFiles()得到的是该目录下的所有目录及文件对象

File[] listFiles = f1dir.listFiles();

for (File file : listFiles) {

System.out.println(file);

}

C:\myPicture\1.jpg

C:\myPicture\2.jpg

C:\myPicture\3.jpg

C:\myPicture\a.jpg

C:\myPicture\wenjianjia

=========================================================================

注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

1,指定的目录必须是存在的,

2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

文件过滤器:筛选自己想要的文件。自定义筛选条件

File f1dir = new File("C:\\myPicture");

File[] listFiles = f1dir.listFiles(new MyFileFilter());

for (File file : listFiles) {

System.out.println(file);

}

1.根据文件名过滤

public classMyFileFilterimplementsFilenameFilter{

@Override

public boolean accept(File dir, String name) {

// TODO Auto-generated method stub

return name.endsWith(".txt");

}

}//C:\myPicture\1.txt

2.筛选出文件夹/文件

public class MyFileFilter implementsFileFilter{

@Override

public boolean accept(File pathname) {

// TODO Auto-generated method stub

return pathname.isDirectory();//筛选出文件夹

//return pathname.isFile()筛选出文件

}

}

你可能感兴趣的:(File的操作)