黑马程序员——File类

------- android培训java培训、期待与您交流! ----------

/*

IO包中比较重要且特殊的一个对象File

流操作的只有数据,数据最基本的体现形式是文件

File类是用来将文件或者文件夹封装成对象,方便对文件或者文件夹的属性信息进行操作

File类的常见方法:

1、创建。

boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false

和输出流不一样,输出流一创建就创建文件。即即使文件已经存在。

boolean mkdir():创建目录(文件夹)

例子:File dir=new File("dsd");dir.mkdir();只能创建一级目录

boolean mkdirs():创建多级目录

2、删除。

boolean delete():删除失败返回假

void deleteOnExit():程序结束时删掉文件,即使程序报错也能够删除指定文件

3、判断。

boolean canExecute()

boolean canWrite():

boolean exists():文件是否存在{如果文件存在,流才可以进行操作}

boolean isFile():实际开发一定注意。。是否是文件

boolean isDirectory():是否否目录

在判断文件对象是否是文件或者目录时,必须要先判断该文件封装的内容是否存在,通关过exists判断。

boolean isHidden():文件是否隐藏

boolean isAbsolute():判断文件是否在绝对路径下,即使不存在,只要是绝对路径返回真

4、获取信息。

String getName()

String getPath()

String getParent():返回的是绝对路径中的父目录。如果获取相对路径返回空。如果相对路径中有上级目录,那么该目录就是返回结果

String getAbsolutePath()返回文件绝对路径

long lastModified()

long length()

boolean renameTo():重命名

5、其它

File ListRoots()静态方法,返回文件类型数组。获取有效盘符

String list()返回字符数组,返回某一盘符里的所有文件及文件夹的名称。调用list

File对象必须是封装了一个目录,该目录必须存在。

练习:要文件夹里所有的.java的文件。

*/

import java.io.*;

class  FileDemo

{

public static void main(String[] args) 

{

File file=new File("D:\\java");

String[]names=file.list(".java");

for(String s:names)

sop(s);

}

//构造方法演示

public static void consMethod() 

{

//sb.txt封装成File对象。可以将存在或者不存在的文件或者文件夹封装成对象。

File file=new File(sb.txt);

File file1=new File("d:\\sb2","sb1.txt");

File file0=new File("D:\\123");

File file3=new File(file0,"sb2.txt");

sop(file);//File里封装的什么,就打印什么。。

//File.separator跨平台的分隔符=\\

}

public static void sop(Object obj) 

{

System.out.println(obj);

}

}

/*

需求:遍历目录下文件或者文件夹,包含文件夹中的内容

因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可

再列出过程中出现的还是目录的化,还可以再次调用本功能

也就是函数自身调用自己

这种表现形式,称为递归

递归注意事件:

1.限定条件,相当于循环

2、注意递归的次数,尽量避免内存溢出

*/

import java.io.*;

class  FileForDemo

{

public static void main(String[] args) 

{

File file=new File("H:\\exercise");

showDir(file);

}

 

public static void showDir(File dir) 

{

System.out.println(dir);

File[]files=dir.listFiles();

for(File name:files)

{

if(name.isDirectory())

showDir(name);

else

sop(name);

}

}

public static void sop(Object obj) 

{

System.out.println(obj);

}

}

/*

需求:列出某一指定目录下.java文件

*/

import java.io.*;

class  FileFilterDemo

{

public static void main(String[] args) 

{

listFilesFilterDemo();

}

//返回的是该目录下的文件对象和文件夹对象[File]

public static void listFilesFilterDemo() 

{

File dir=new File("D:\\java");

File[]files=dir.listFiles();

for(File name:files)

{

sop(name.getName()+":::::"+name.length());

}

 

}

//过滤指定某目录下文件,返回的是该目录下的文件名称和文件夹名称[String]

public static void listFilterDemo() 

{

File dir=new File("D:\\java");

String[]arr=dir.list(new FilenameFilter()

{

public boolean accept(File dir,String name)

{

return name.endsWith(".java");

}

});

for(String name:arr)

{

sop(name);

}

}

public static void sop(Object obj) 

{

System.out.println(obj);

}

}

------- android培训java培训、期待与您交流! ----------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值