java - File类
一、作用
(1)File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
对文件和目录本身的操作(刨除内容)
(2)File对象可以作为参数传递给流的构造函数。
二、常用构造方法
File f = new File(相对路径/绝对路径);
File f = new File("parent","child");
1、创建一个文件
//在工作空间目录下创建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();
2、创建一个文件夹
//在工作空间目录下创建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(),创建多个文件夹
3、new File的区别
File f = new File("a");//此时f是文件夹 File f = new File("parent","child"); //此时f是文件,parent文件夹下的文件 //注意:此时会在盘符根目录下创建文件夹 或文件 d File f = new File("", "d"); f.createNewFile(); // f.mkdir()
4、list() 方法和 listFile() 方法的区别
f.list(); //返回String[]数组.里面包含了f一级目录下的文件和文件夹名. //注意: 如果f:\\a\\b.那么b不会包含在数组中 f.listFiles(); //返回File[]数组.里面包含了f一级目录下的文件和文件夹名. //注意: 如果f:\\a\\b.那么b不会包含在数组中
5、文件名过滤器 FilenameFilter
//在f1的文件夹中过滤出后缀名为 "txt"的文件 String[] s = f1.list(new FilenameFilter() { /** * dir 需要被过滤的文件夹 name 需要别被过滤的文 件名 .此名是相对路径 * 如果返回true 则证明是符合条件的文件.会将改文件返回到数组中 */ @Override 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; } });
6、文件过滤器 FileFilter
//在f1文件夹中过滤出文件长度大于20M的文件. File[] fs = f1.listFiles(new FileFilter() { /** * pathname 表示要被过滤的文件,注意:不是文件名 * 返ture 证明是符合条件的文件 */ @Override public boolean accept(File pathname) { if (pathname.length() > 1024 * 1024 * 20) { return true; } return false; } });
三、文件一些常用方法
f.delete(); //删除file f.exists(); //file是否存在 f.getName(); //得到file名字 f.isDirectory(); //file是否是文件夹 f.isFile(); //file是否是文件 f.length(); //file的长度
四、文件路径分为两种
(1)绝对路径 G:\\a.txt
(2)相对路径 a.txt. //相对于工作空间的路径( G:\andirodWorkspace\a.txt)
五、例子
package com.file; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class FileMethod { public static void main(String[] args) throws IOException { //创建方法 /* File file = new File("F:\\a.txt"); //System.out.println("创建成功了吗?"+file.createNewFile()); //System.out.println("单级文件夹创建成功了吗?"+file.mkdir()); //System.out.println("多级文件夹创建成功了吗?"+file.mkdirs()); //File dest = new File("F:\\电影\\c.txt"); //System.out.println("重命名成功了吗?"+file.renameTo(dest)); */ /* //删除方法 File file = new File("F:\\电影"); System.out.println("删除成功了吗?"+file.delete()); file.deleteOnExit(); */ //判断方法 /* File file = new File("F:\\a.txt"); System.out.println("文件或者文件夹存在吗?"+file.exists()); System.out.println("是一个文件吗?"+file.isFile()); System.out.println("是一个文件夹吗?"+file.isDirectory()); System.out.println("是隐藏文件吗?"+file.isHidden()); System.out.println("此路径是绝对路径名?"+file.isAbsolute()); */ //获取方法 /* File file = new File("f:\\a.txt"); System.out.println("文件或者文件夹得名称是:"+file.getName()); System.out.println("绝对路径是:"+file.getPath()); System.out.println("绝对路径是:"+file.getAbsolutePath()); System.out.println("文件大小是(以字节为单位):"+file.length()); System.out.println("父路径是"+file.getParent()); //使用日期类与日期格式化类进行获取规定的时间 long lastmodified= file.lastModified(); Date data = new Date(lastmodified); SimpleDateFormat simpledataformat = new SimpleDateFormat("YY年MM月DD日 HH:mm:ss"); System.out.println("最后一次修改的时间是:"+simpledataformat.format(data)); */ //文件或者文件夹的方法 File[] file = File.listRoots(); System.out.println("所有的盘符是:"); for(File item : file){ System.out.println("\t"+item); } File filename =new File("F:\\Java workspace\\Java"); String[] name = filename.list(); System.out.println("指定文件夹下的文件或者文件夹有:"); for(String item : name){ System.out.println("\t"+item); } File[] f = filename.listFiles(); System.out.println("获得该路径下的文件或文件夹是:"); for(File item : f){ System.out.println("\t"+item.getName()); } } }