IO之File类

来源:互联网 发布:广州网络优化 编辑:程序博客网 时间:2024/05/17 09:04

File类是java.io包下代表与平台无关的文件和目录,不管是文件、还是目录都是使用File来操作的。File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
File类可以使用文件路径字符串来创建File实例,该文件路径字符串既可以是绝对路径,也可以是相对路径,默认情况下,系统总是根据用户的工作路径来解释相对路径。

1.构造器
File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。
File(String parent, String child):根据parent路径名字符串和child路径名字符串创建一个新File实例。
File(File parent, String child):根据parent抽象路径名和child路径名字符串创建一个新File实例。

属性字段
static String separator :与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。

//通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。File file1 = new File("c:\\demo.txt");//根据parent路径名字符串和child路径名字符串创建一个新File实例。File file2 = new File("d:\\", "demo.txt");//根据parent抽象路径名和child路径名字符串创建一个新File实例。File f = new File("e:\\");File file3 = new File(f, "demo.txt");//使用separator属性//因为不同操作系统下分隔符表示不同,为了具有跨平台性,使用separator表示分隔符File file4 = new File("c:" + File.separator + "abc"+ File.separator + "demo.txt");

2.创建
boolean createNewFile():当且仅当不存在具有此抽象路径名指定名称的文件时,创建一个新的空文件。
static File createTempFile(String prefix, String suffix):在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。

boolean mkdir():创建此抽象路径名指定的目录。此方法只可以创建一级目录。
boolean mkdirs():创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。此方法可以创建多级目录。
public class FileDemo {public static void main(String[] args) throws IOException {//通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。File file1 = new File("c:\\demo.txt");file1.createNewFile();//创建一个临时文件File file2 = File.createTempFile("Hello", ".tmp");//创建一个一级目录,使用mkdir方法File dir1 = new File("d:\\abc");dir1.mkdir();//创建一个多级目录,使用mkdirs方法File dir2 = new File("d:\\abc\\bc\\a");dir2.mkdirs();}}


3.删除
boolean delete():删除此抽象路径名表示的文件或目录。
boolean deleteOnExit():在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

//删除目录File dir = new File("f:\\abc\\a");dir.delete();//在虚拟机终止时,删除文件File file = new File("f:\\demo.txt");file.deleteOnExit();


4.判断
boolean canExecute():测试应用程序是否可以执行此抽象路径名表示的文件。
boolean canRead():测试应用程序是否可以读取此抽象路径名表示的文件。
boolean canWrite():测试应用程序是否可以修改此抽象路径名表示的文件。
boolean exists():测试此抽象路径名表示的文件或目录是否存在。
boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录。
boolean isHidden():测试此抽象路径名指定的文件是否是一个隐藏文件。
boolean isAbsolute():测试此抽象路径名是否为绝对路径名。

File file = new File("f:\\demo.txt");//判断是否存在file.exists();//判断是否是文件file.isFile();//判断是否是路径file.isDirectory();


5.获取信息
String getName():返回由此抽象路径名表示的文件或目录的名称。
String getPath():将此抽象路径名转换为一个路径名字符串。
String getParent():返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
long length():返回由此抽象路径名表示的文件的长度。
long lastModified():返回此抽象路径名表示的文件最后一次被修改的时间。

File file = new File("f:\\abc\\demo.txt");//获取名称String name = file.getName();//获取路径String dir = file.getPath();//获取父路径String parDir = file.getParent();


6.移动
boolean removeTo(File dest):重新命名此抽象路径名表示的文件。
File targetFile = new File("f:\\demo.txt");File destFile = new File("e:\\demo.txt");//从F盘移动到E盘targetFile.renameTo(destFile);


7.清单
static File[] listRoots():列出可用的文件系统根。

String[] list():返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter):返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

File[] listFiles():返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

获取路径下所有的Java文件,以字符串形式返回
public class FileDemo {public static void main(String[] args) {File file = new File("F:\\eclipse\\workspace\\test\\src\\com\\heima");//获取路径下所有的Java文件,以字符串形式返回String[] fileNames = file.list(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {return name.endsWith(".java");}});//遍历输出for(String name : fileNames){System.out.println(name);}}}

获取指定路径下所有文件并具有层次感打印
public class FileDemo3 {public static void main(String[] args) {File dir = new File("E:\\TDDOWNLOAD\\黑马");showDir(dir, 0);}//遍历文件并打印方法public static void showDir(File dir, int level){//先将目录名打印System.out.println(getLevel(level) + dir);level++;//获取该目录下所有文件File[] files = dir.listFiles();//遍历所有文件for(File file : files){//如果是文件夹,那么递归if(file.isDirectory())showDir(file, level);//否则,是文件,打印文件名elseSystem.out.println(getLevel(level) + file.getName());}}//获取目录层级方法public static String getLevel(int level){//用来存储目录表示StringBuilder sb = new StringBuilder();//首先打印目录名前的标识sb.append("|--");//根据层级添加空格以便使之具有层次感for(int i = 0; i < level; i++){sb.insert(0, "   ");}return sb.toString();}}

删除指定目录下所有文件
public class FileDemo4 {public static void main(String[] args) {File dir = new File("e:\\test");removeDir(dir);}//删除目录public static void removeDir(File dir){//获取该目录中所有文件File[] files = dir.listFiles();//遍历for(File file : files){//如果是目录,那么递归继续遍历其中内容if(file.isDirectory())removeDir(file);//否则,将其删除elsefile.delete();}//最后将该目录删除dir.delete();}}

查找指定目录下所有java文件并将其路径保存到清单列表
public class FileDemo5 {public static void main(String[] args) {File dir = new File("F:\\eclipse\\workspace\\test\\src");FileWriter fw = null;try{fw = new FileWriter("f:\\filelist.txt");saveList(dir, fw);}catch(IOException e){e.printStackTrace();}finally{try{if(fw != null)fw.close();}catch(IOException e){e.printStackTrace();}}}//查找指定目录下所有java文件并将其路径保存到清单列表public static void saveList(File dir, Writer writer) throws IOException{//获取该目录下的文件清单File[] files = dir.listFiles();//遍历for(File file : files){//如果是目录,继续递归遍历if(file.isDirectory())saveList(file, writer);//否则判读else{//如果是java文件,那么保存其路径if(file.getName().endsWith(".java")){writer.write(file.getAbsolutePath());writer.write("\r\n");writer.flush();}}}}}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机没开定位丢了怎么办 我和我老婆每天都吵架怎么办 现在在学注册消防师好枯燥怎么办 店铺台阶太高顾客不愿进来怎么办? 上古卷轴5跑步要沉下去怎么办 1岁半宝宝半夜醒来不睡觉怎么办 上古卷轴5不小心偷了东西怎么办 47牙缺失17号长长了怎么办 碎纸机过热件亮了卡住纸了怎么办 汽车买贵了2万多怎么办 宝宝眼皮被蚊子咬肿了怎么办 一岁宝宝撞头咬到舌头有伤口怎么办 二胎快生了老大特别粘人怎么办 生二胎不舍得大宝跟奶奶睡怎么办 怀二胎婆婆不帮忙带孩子怎么办 注册过的高铁用户名忘了怎么办 硕士延期毕业找好的工作怎么办 竞彩足球绑定信用卡提不了现怎么办 qq启动出现问题请卸载重装怎么办 u盘有文件打开后却是空的怎么办 王者荣耀不记得所在的区服怎么办 交易猫出售游戏账号是微信号怎么办 网银密码输错3次怎么办 无线网卡信号很好就是没网速怎么办 红米2a忘了登陆账号怎么办 qq封了密保手机没用了怎么办 乐视手机重置账号密码忘了怎么办 此版本的ios不支持银联怎么办 单反m档拍出来照片是黑色怎么办 从兴趣部落老发骚扰信息怎么办 在厂里辞一个月厂长不批怎么办 在厂里做管理被员工恐吓怎么办 在葡京娱乐输了很多钱怎么办 从珠海入镜澳门北京往返签注怎么办 艾艾灸灸了一身小子子怎么办? 微信视频已过期或已清理怎么办 视频已过期或已被清理怎么办 小孩作业不会老婆天天吵骂打怎么办 苹果手机在太阳下屏幕变暗怎么办 斗鱼的鱼丸竞猜主播结算了怎么办 附近有个小姐姐想加她好友怎么办