File类常用方法详解
2015-08-28 12:32
351 查看
最近在学习IO流有关的知识,在学流之间先学了一下关于File类的一些常用方法。
首先说一下File的三个构造方法,下边的三种构造方法效果都是相同的,都是得到file对象。其中第二个和第三个构造方法的区别在于参数类型的不同,第二个构造方法的第一个参数是String类型,第三个构造方法第一个是File对象,这两个都代表的是第二个参数的父目录。
下面是创建file:
删除
重命名:
得到
[b]
[/b]
获取某个位置所有的文件
listDemo
首先说一下File的三个构造方法,下边的三种构造方法效果都是相同的,都是得到file对象。其中第二个和第三个构造方法的区别在于参数类型的不同,第二个构造方法的第一个参数是String类型,第三个构造方法第一个是File对象,这两个都代表的是第二个参数的父目录。
//第一种 File(String pathname):根据一个路径得到File对象 File file = new File("E:\\demo\\a.txt"); //第二种 File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 File file2 = new File("E:\\demo", "a.txt"); //第三种 File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 File file3 = new File("e:\\demo"); File file4 = new File(file3, "a.txt");
下面是创建file:
package com.lqt; import java.io.File; import java.io.IOException; /**<strong> * c</strong>reateNewFile()是直接创建文件 * mkdir()是创建一个文件夹,但是不能直接创建二级文件夹 * mkdirs()也是直接创建文件夹,但是他同时可以创建多级目录,但是请注意,他只能创建文件夹不能直接创建文件 * * 注:以上三个方法的返回类型都是boolean,创建成功返回true,不成功返回false */<strong> </strong>public class FileToCreate { public static void main(String[] args) throws IOException { File file1 = new File("f:\\1.txt"); System.out.println("careateNewFile:"+file1.createNewFile()); File file2 = new File("f:\\aa"); System.out.println("mkdir:"+file2.mkdir()); File file3 = new File("f:\\bb\\cc"); System.out.println("mkdir:"+file3.mkdir()); File file4 = new File("f:\\111\\222\\333"); System.out.println("mkdir:"+file4.mkdirs()); File file5 = new File(file4, "1.txt"); System.out.println("createNewFile1:"+file5.createNewFile()); File file6 = new File("f:aaa\\1.txt"); System.out.println("mkdirs:"+file6.mkdirs());//注意此时创建的只是一个名字叫做1.txt的文件夹,不是文件 } }<strong> </strong>
删除
package com.lqt; import java.io.File; /** * delete()的返回值依然是boolean * 他既可以删除文件也可以删除文件夹,但是当删除文件夹时,必须保证文件夹下没有任何子文件或子文件夹擦能删除 * delete3中在目录222下还有一个别的文件夹存在,所有返回flase,删除失败 */ public class FileToDelete { public static void main(String[] args) { File file6 = new File("f:\\1.txt"); System.out.println("delete1:"+file6.delete()); File file7 = new File("f:\\aa"); System.out.println("delete2:"+file7.delete()); File file8 = new File("f:\\111\\222"); System.out.println("delete3:"+file8.delete()); } }
重命名:
package com.lqt; import java.io.File; /** * 在重命名时需要取到想要重命名的File对象,如下例的file9,之后定义要给他重新的名字如file10 * 有一点需要大家注意,当想要重命名的对象与重命名之后的对象不再相同的路径中时,系统采用的是剪切的效果 * file11就是将2.txt剪切到了d盘下,并且重命名为3.txt */ public class FileToRename { public static void main(String[] args) { File file9 = new File("f:\\1.txt"); File file10 = new File("f:\\2.txt"); System.out.println("renameTo1:"+file9.renameTo(file10)); File file11 = new File("d:\\3.txt"); System.out.println("renameTo1:"+file10.renameTo(file11)); } }判断:在我们平常做项目时,有事需要判断某些条件,以下为一些常用的
package com.lqt; import java.io.File; /** * 判断是否隐藏、可读、可写时,大家可以去文件夹的高级选项中去设置问价的属性,设置成只读之类的 * */ public class FileToIS { public static void main(String[] args) { File file12 = new File("f:\\3.txt"); System.out.println("isDirectory:"+file12.isDirectory());//判断是否是文件夹(目录) System.out.println("isFile:"+file12.isFile());//判断是否是 System.out.println("isHidden:"+file12.isHidden());//判断是否隐藏 System.out.println("canRead:"+file12.canRead());//判断是否可读 System.out.println("canWrite"+file12.canWrite());//判断是否可写 System.out.println("exists:" + file12.exists());//判断是否存在 } }<strong style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></strong><div style="display: inline !important;"><strong> </strong></div>
得到
package com.lqt; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /** * 需要注意的是,在获取最后一次更改时间时,返回值是long类型的,所以想得到准确的时间还需要对其进行转换 */ public class FileToGet { public static void main(String[] args) { File file = new File("f:\\3.txt"); System.out.println("getAbsolutePath:"+file.getAbsolutePath());//获取绝对路径 System.out.println("getPath:"+file.getPath());//获取相对路径 System.out.println("getName:"+file.getName());//获取名字 System.out.println("length:"+file.length());//获取文件字节数 System.out.println("lastModified:"+file.lastModified());//获取最后一次更改时间 Date date = new Date(file.lastModified()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String string = sdf.format(date); System.out.println(string); } }
[b]
[/b]
获取某个位置所有的文件
package com.lqt; import java.io.File; /** * 获取f盘下所有文件 * 共有两种方法:list()和listFiles(),他们的区别在于返回值一个是string[],一个是file[] */ public class FileToList { public static void main(String[] args) { File file = new File("f:\\"); String[] strings = file.list(); for(String s : strings){ System.out.println(s); } File[] files = file.listFiles(); for(File file2 : files){ System.out.println(file2); } } }要想获取到某个目录下所有文件,用上边的两个方法都可以,但是当你想要过滤某些条件时,不得不使用file对象时,就体现出了他们的区别,如下个例子想要取出f盘下所有.txt文件,就需要使用file对象来处理
listDemo
package com.lqt; import java.io.File; public class FileToListDemo { public static void main(String[] args) { File file = new File("f:\\"); File[] files = file.listFiles(); for(File file2 : files){ if(file2.isFile()){ if(file2.getName().endsWith(".txt")){//判断是否以.txt结尾 System.out.println(file2); } } } } }
相关文章推荐
- Android Fragment——添加一个没有UI的Fragment
- PHP下拉框内容随单选框内容变化
- Matlab.NET混合编程技巧之直接调用Matlab内置函数
- oracle学习笔记 ---- 常用系统函数
- IOS: 应用截图尺寸和启动图片
- JPA与Spring集成
- jquery.validate.js使用之自定义表单验证规则
- 算法篇——小学生算数
- gauss消元
- errno 的坑
- js实现带圆角的多级下拉菜单效果
- ScrollView嵌套导致onTouch中的ACTION_UP丢失的问题解决
- mongdb文档操作
- SQL 表操作小技巧(1)
- Android中的Intent(意图)的使用
- android zxing
- IOS UICollectionViewLayout详解
- zzuli OJ 1006: 求等差数列的和
- JPA 事务管理
- android中padding和 margin区别