java中file+file=Null_File类

File类

17File类

java.io包下。File不能访问文件本身,要想访问文件本身的内容,需要使用io流。File可以表示文件或目录

构造方法

public File(String 文件路径); 通过给定路径创建一个实例

File file = new File("./src/data.txt");

注意:一个File对象代表着硬盘中实际存在的一个文件或目录。无论该路径下时候存在文件或目录,都不影响File对象的创建。

常用方法

访问文件名的操作

public String getAbsolutePath();返回此File的绝对路径

public String getPath();返回此File的当前路径,意思就是你在创建File对象的时候,给定了什么路径,就返回什么路径。

public String getName();返回此File表示的文件或目录名称

public long length(); 返回此File表示的文件长度,就是文件的字节大小

String getParent();返回此File对象的父级目录

boolean renameTo(File newName);重命名此File对象所对应的文件或目录,成功就返回true

File file = new File("./src/data.txt");

file.getAbsolutePath();//E:/eclipse/workSpace/java/src/data.txt 绝对路径就是系统盘符下的路径

File file1 = new File("./src/data.txt");

file1.getPath();//.src/data.txt 创建File实例的时候,给定了什么地址就返回什么地址

File file2 = new File("./src/data.txt");

file2.getName();//返回data.txt

file2.length();//返回这个文件的字节大小长度

file2.getParent();//返回fiel实例代表的目录的父级目录,若已经在根目录 就返回null

file2.renameTo(file2);//修改file2的名字,成功返回true

文件检测相关操作

public boolean exists();此File表示的文件或目录是否存在。

public boolean isDirectory();此File表示的是否是目录

public boolean isFile();此File表示的是否是文件

boolean canWrite();判断File对象所对应的文件或目录是否可写

boolean canRead();判断File对象所对应的文件或目录是否可读

boolean isAbsolute();判断File对象所对应的文件或目录是否是绝对路径

File file = new File("./src/data.txt");

file.exists();//存在返回true

file.isDirectory();

file.isFile();

file.canWrite();

file.canRead();

file.isAbsolute();

删除与创建操作

public boolean createNewFile();当且仅当具有该名称的文件上不存在时,创建一个空的该文件

public boolean delete();删除此File表示的文件或目录

public boolean mkdir();创建单级目录

public boolean mkdirs();创建多级目录,包括任何必须且不存在的目录

File file = new File("./src/data.txt");

file.exists(); //false

file.createNewFile();//创建成功返回true

file.exists();//true

File file1 = new File("./src/data.txt");

file.exists();//true

file.delete();//true

file.exists();//false

File file2 = new File("one");

file2.mkdir();//true 创建一级目录成功,只能创建一级目录

File file3 = new File("one/two/three");

file3.mkdirs();//true 可以创建多级目录,包括不存在的父级目录

获取文件常规信息

long lastModified();返回文件的最后修改时间

long length();返回文件内容的长度

遍历目录

public String[] list(); 返回一个String数组,存放File目录中的所有子文件或子目录名称

public File[] listFiles();返回一个FIle数组,存放File目录中所有子文件或子目录的对象

系统D盘下,有三个文件夹,one two three,每个文件加下面有两个文件

File file = new File("D:/");

String[] names = file.list();//获取到了one two three三个文件夹

for(String name : names){

System.out.println(name);//输出one two three

}

//调用listFile方法的File对象,必须是实际存在的文件或目录,否则返回null 无法进行遍历

File file1 = new File("D:/one");

File[] fr = file1.listFile();

for(File f : fr){

System.out.println(f.getName);//输出one下面的三个文件的名称

}

递归删除文件

public class Demo{

public static void main(String[] args){

File file = new File("D:/langsin");

//lnagsin下面有好多文件夹,每个文件夹下面还有文件夹和文件

delete(file);

}

public static void delete(File file){

if(file.isFile()){

file.delete();

}else{

File[] names = file.listFile();

for(File fr : names){

delete(fr);

}

file.delete();

}

}

}

FileFilter类

java.io.FileFilter接口是File的过滤器,作用是过滤文件,接口中只有一个抽线方法accept

boolean accept(File pathname);//判定指定抽象路径名是否应该包含在某个路径名列表中

//查找某个文件目录下的所有以.pdf结尾的文件

public class Demo{

static FileFilter filter = new FileFilter(){

@override

public boolean accept(File pathName){

String s = pathName.getName().toLowerCase();

if(s.endWith(".pdf")||pathName.isDirectory()){

return true;

}else{return false;}

}

};

public static void main(String[] args){

File file = new File("D:/langsin");

findFile(file);

}

public static void findFile(File file){

if(file.getName().endWith(".pdf")){

Sysout.out.println(file.getName());

}else{

File[] names = file.listFile(filter);

for(File f : names){

findFile(f);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值