首先,拿到这个题目,我要找java怎样实现文件的读取。
File file = new File(fileName);
我们知道java通过以上代码获取文件目录
File[] files = file.listFiles();
上面代码获取目录下所有子文件和文件夹。
以下是java.io.File.isFile()方法的声明:
public boolean isFile()
参数
NA
返回值
当且仅当表示此抽象路径名的文件是一个文件该方法返回true,否则该方法返回false。
通过isFile()函数可以判断是否为文件。
通过isDirectory()函数可以判断是否为目录。
知道了这些就好办了。
---------------------
package com.anji.allways.business.sales.utils;
import java.io.File;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 用递归统计某文件夹下文件
*/
public class FileCount {
private static AtomicInteger count = new AtomicInteger(0);
public static void readFile(File file) {
File[] fileList = file.listFiles();
if (fileList == null) {
return;
}
for (File f : fileList) {
if (f.isFile()) {
count.incrementAndGet();
System.out.println("文件名" + f.getName());
}
if (f.isDirectory()) {
readFile(f);
}
}
}
public static void main(String[] args) {
//取得目标目录
File file = new File("D:");
//获取目录下子文件及子文件夹
File[] files = file.listFiles();
readfile(files);
/*File file = new File("D:");
readFile(file);*/
System.out.printf("文件总量:" + count);
}
public static void readfile(File[] files) {
if (files == null) {// 如果目录为空,直接退出
return;
}
for (File f : files) {
//如果是文件,直接输出名字
if (f.isFile()) {
count.incrementAndGet();
System.out.println(f.getName());
}
//如果是文件夹,递归调用
else if (f.isDirectory()) {
readfile(f.listFiles());
}
}
}
}
作者:75闪光雷
来源:CSDN
原文:https://blog.csdn.net/qq_34309305/article/details/79194343
版权声明:本文为博主原创文章,转载请附上博文链接!