java getfiles_java 文件File操作

##############################################################

java的File类常用方法:

import java.io.File;

import java.io.IOException;

File file1=new File("config/");

File file2=new File("config/");

创建:

createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。

file1.createNewFile();

mkdir() 在指定位置创建一个单级文件夹。

file1.mkdir();

mkdirs() 在指定位置创建一个多级文件夹。

file1.mkdirs();

renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还不能操作文件夹。

file1.renameTo(file2);

删除:

delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。

file1.delete();

deleteOnExit()jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。

file1.deleteOnExit();

判断:

exists() 文件或文件夹是否存在。

file1.exists();

isFile() 是否是一个文件,如果不存在,则始终为false。

file1.isFile();

isDirectory() 是否是一个目录,如果不存在,则始终为false。

file1.isDirectory();

isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。

file1.isHidden();

isAbsolute() 测试此抽象路径名是否为绝对路径名。

file1.isAbsolute();

获取:

getName() 获取文件或文件夹的名称,不包含上级路径。

file1.getName();

getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系

file1.getAbsolutePath();

length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。

file1.length();

getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。

file1.getParent();

lastModified()获取最后一次被修改的时间。

file1.lastModified();

文件夹相关:

static File[] listRoots()列出所有的根目录(Window中就是所有系统的盘符)

File[] file3=File.listRoots();

list() 返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。

file1.list();

listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。

file1.listFiles();

list(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。

listFiles(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。

#######################################################

package javaTest01;

import java.io.File;

import java.util.ArrayList;

import java.util.List;

import java.util.stream.Collectors;

public class GetFiles {

ArrayList fileList=new ArrayList();

/**

* 获取目录下所有文件

* @param file

* @return

*/

public List getFiles(File file){

File[] fileArr=file.listFiles();

for (File ele : fileArr) {

if (ele.isDirectory()) {

//getFiles(ele); //相对file的相对路径

getFiles(new File(ele.getAbsolutePath())); //绝对路径

} else {

//fileList.add(ele);

fileList.add(new File(ele.getAbsolutePath()));

}

}

//stream对集合进行过滤

List fileListFilter=fileList.stream() //Collection对象转换成Stream

.filter(x -> (x.toString().endsWith(".txt") && x.toString().startsWith("E") )|| x.toString().endsWith(".json")) //过滤后只保留 ①后缀名为.txt且开头为E ②后缀名为.json

.collect(Collectors.toList());

return fileListFilter;

}

ArrayList dirList=new ArrayList();

public List getDirs(File file){

File[] fileArr=file.listFiles();

for(File ele:fileArr){

if(ele.isDirectory()){

//dirList.add(ele); //相对file的相对路径

dirList.add(ele.getAbsolutePath()); //绝对路径

getDirs(ele);

}

}

return dirList;

}

public static void main(String[] args){

File dir=new File("config");

List result=new GetFiles().getFiles(dir);

System.out.println("Number of all files: "+result.size());

for(Object ele : result){

System.out.println(ele);

}

List result2=new GetFiles().getDirs(dir);

System.out.println("Number of all dirs: "+result2.size());

for(Object ele : result2){

System.out.println(ele);

}

}

}

69586437bcc9de6aaf88df597452a8eb.png

403c71607be9c6a1c6596e879b898167.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值