如果希望在程序中操作文件和目录,都可以通过File类来实现。File能新建、删除、重命名文件和目录,File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用I/O流。
一. 创建一个文件
1 2 3 4 5 6 7 8 9 10 11
| //在工作空间目录下创建a.txt的文件 File f = new File("a.txt"); f.createNewFile(); 在G:\路径下创建一个a.txt的文件.如果已经有的话这不会重新创建 File f = new File("G:\\a.txt"); f.createNewFile(); 如果路径写成\\a.txt,会在盘符下创建新的文件 File f = new File("\\a.txt"); f.createNewFile();
|
二. 创建一个文件夹
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| //在工作空间目录下创建a.txt的文件夹 File f = new File("a"); f.mkdir(); 在G:\路径下创建一个a.txt的文件夹.如果已经有的话这不会重新创建 File f = new File("G:\\a"); f.mkdir(); 如果路径写成\\a.txt,会在盘符下创建新的文件夹 File f = new File("\\a"); f.mkdir(); 在g盘下创建文件夹a,a 下创建一个b文件夹 File f = new File("G:\\a\\b"); f.mkdirs(); //注意mkdirs(),创建多个文件夹
|
三. 使用list()方法列出当前路径下的所有文件
1 2 3 4 5 6 7
| File f =new File ("D:\\学习\\Java\\b\\a"); f.mkdirs(); //列出当前路径下的所有文件 String[] filelist = f.list(); for (String filename : filelist){ System.out.println(filename); }
|
四. 文件名过滤器FilenameFilter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //在f1的文件夹中过滤出后缀名为"txt"的文件 public static void main(String[] args){ File f1 = new File("D:\\学习\\Java\\b"); String[] s = f1.list(new FilenameFilter() { public boolean accept(File dir, String name) { File f = new File(dir, name); if (f.isDirectory()) { return false; } if (f.getName().endsWith("txt")) { return true; } return false; } }); for(String name : s){ System.out.println(name); } }
|
五. 文件过滤器FileFilter
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| //在f1文件夹中过滤出文件长度大于20KB的文件 File f1 = new File("D:\\学习\\Java\\b"); File[] fs = f1.listFiles(new FileFilter() { public boolean accept(File pathname) { if (pathname.length() > 1024 * 20) { return true; } return false; } }); for(File name : fs){ System.out.println(name); }
|
六. 其它一些常用方法
- f.delete(); //删除file
- f.exists(); //file是否存在
- f.getName(); //得到file名字
- f.isDirectory(); //file是否是文件夹
- f.isFile(); //file是否是文件
- f.length(); //file的长度