java.io.file()_JAVA基础知识之IO-File类

File类介绍

File是java.io包下面的一个类,代表与平台无关的文件或者目录。JAVA中,无论文件还是目录,都可以看作File类的一个对象。File类能对文件或目录新建,删除,获取属性等操作,但是不能直接操作文件内容(文件内容需要用数据流访问)。

JVM默认会将workspace作为相对路径,即user.dir系统变量所指路径, 即如果这样初始化file对象,File file = new File("."); 就是获取了user.dir路径。

File类的常用方法

String getName() -如果file对象是一个文件,则返回文件名,如果是路径,则返回路径的最后一级

File getAbsoluteFile() -返回绝对路径

String getParent() -返回file对象所在目录的父目录

File类检查文件

exists()-文件或目录是否存在

canRead()-是否可读

isFile()-是否是文件

isDirectory()-是否是目录

File类获取文件属性

long lastModified() -最后修改时间

long length() -文件长度

File类进行文件操作

createFile() -成功true,失败false

delete()

mkdir() -创建目录 ,file对象必须对应一个路径

String[] list() - 如果file对象是一个路径,list()将返回一个数组,如果路径下没有文件和子目录,则数组为empty;如果file对象是一个文件,或者file路径不存在,或者发生IO错误,则list()返回null

File[] listFiles() -同上,只不过返回的是File类型数组

文件过滤器FilenameFilter接口

如果FilenameFilter作为file.list()的参数传入,实现FilenameFilter接口的accept方法,可以实现文件过滤。

accept方法有两个参数,dir和name,通常可以对name做条件过滤。

下面是File类的综合演示,

1 packageio;2

3 importjava.io.File;4 importjava.io.FilenameFilter;5 importjava.io.IOException;6

7 public classFileTest {8 public static void main(String[] args) throwsIOException {9 //JVM默认会将workspace作为相对路径,即user.dir系统变量所指路径

10 File file = new File(".");11 File file2 = new File("C:/PROJECT/JavaBasic/PROJECT_JavaBasic/tmp.txt");12 File file3 = new File("./tmp.txt");13 //如果file对象是一个文件,则返回文件名,如果是路径,则返回路径的最后一级

14 System.out.println(file.getName());15 //当file为相对路径时,获取父路径可能会出错

16 file3.delete();17 System.out.println("父路径:"+file3.getParent());18 //获取绝对路径

19 System.out.println(file.getAbsoluteFile());20 //getAbsoluteFile返回的是File类型, getAbsolutePath则返回String类型

21 System.out.println(file.getAbsoluteFile().getParent());22 //在当前路径下创建一个临时文件,第三个参数必须是路径,否则会报错

23 File tmpFile = File.createTempFile("aaa", ".txt", file);24 //JVM退出时删除该文件

25 tmpFile.deleteOnExit();26 //以系统时间作为名称创建文件

27 File newFile = new File(System.currentTimeMillis()+"");28 System.out.println("newFile是否存在:"+newFile.exists());29 //以指定file对象来创建文件

30 newFile.createNewFile();31 System.out.println("newFile是否存是文件:"+newFile.isFile());32 System.out.println("newFile是否存是目录:"+newFile.isDirectory());33 System.out.println("以newFile对象创建目录是否成功:"+newFile.mkdir());34 //如果file对象是一个路径,list()将返回一个数组,如果路径下没有文件和子目录,则数组为empty35 //如果file对象是一个文件,或者file路径不存在,或者发生IO错误,则list()返回null

36 String[] fileList =file.list();37 System.out.println("====当前路径下的所有文件和目录如下====");38 for(String fileName : fileList) {39 System.out.println(fileName);40 }41 //listRoots静态方法列出所有磁盘根路径

42 File[] roots =File.listRoots();43 System.out.println("====系统所有磁盘根路径如下====");44 for(File root : roots) {45 System.out.println(root);46 }47

48 String[] nameList = file.list(newFilenameFilter() {49 @Override50 public booleanaccept(File dir, String name) {51 //TODO Auto-generated method stub

52 return name.endsWith(".txt") || newFile(name).isDirectory();53 }54 });55 System.out.println("====过滤条件后如下====");56 for(String filterName : nameList) {57 System.out.println(filterName);58 }59

60 }61 }

输出结果如下,

1 .2 父路径:.3 C:\PROJECT\JavaBasic\PROJECT_JavaBasic\.4 C:\PROJECT\JavaBasic\PROJECT_JavaBasic5 newFile是否存在:false

6 newFile是否存是文件:true

7 newFile是否存是目录:false

8 以newFile对象创建目录是否成功:false

9 ====当前路径下的所有文件和目录如下====

10 .classpath11 .project12 .settings13 1480521332106

14 1480521357843

15 1480521378187

16 1480522448612

17 1480522471511

18 1480522477413

19 1480522484941

20 1480522505253

21 aaa2174524463556527449.txt22 bin23 src24 ====系统所有磁盘根路径如下====

25 C:\26 D:\27 E:\28 F:\29 ====过滤条件后如下====

30 .settings31 aaa2174524463556527449.txt32 bin33 src

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值