第一次写csdn,没有太多的经验,勿吐槽。下面用简化的方式描述几个常用的知识点。
IO是一个挺重要的部分对于技术来说。顾名思义,Input(输入)和 output(输出)。
第一部分:让我们了解一下传入,创建,和遍历文档File的几种常用的java方式
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.lang.reflect.Field;
public class DemoFile {
public static void main(String[] args) throws IOException {
File haha = new File("/Users/christopoher/Desktop/demoFile");
boolean newFile = haha.createNewFile();//可以按住command点击进入createNewFile()方法扫一下包中的源码
// File dir = new File("/Users/christopoher/Desktop/nb");
// boolean dirBool = dir.mkdir();//可以按住command点击进入createNewFile()方法扫一下包中的源码
// File a = new File(dir, "a.txt");//可以按住command点击进入createNewFile()方法扫一下包中的源码 构造方法
// boolean fileBo = a.createNewFile();//可以按住command点击进入createNewFile()方法扫一下包中的源码
// File b = new File(dir, "b.pdf");
// boolean fileBool = b.createNewFile();
// System.out.println(newFile & dirBool & fileBool & fileBo ? "创建成功" : "创建失败");
// System.out.println(a.getAbsoluteFile());//可以按住command点击进入createNewFile()方法扫一下包中的源码
// System.out.println(b.getAbsolutePath()); // 获取此对象的地址
// System.out.println(File.pathSeparator); // 分隔符适用于不同操作系统
// System.out.println(File.separator); // 分隔符适用于不同操作系统
File f = new File("/Users/christopoher/Desktop");
File[] files = f.listFiles();
//正常正常遍历方法
//fileTraverse(files);
// 内部类方法
//listFiles2(f);
//相对路径与绝对路径or relative path and absolute path
// File file1 = new File("/Users/christopoher/Desktop/Asian371/岳阳楼记.docx");
// File file2 = new File("岳阳楼记.docx");
// System.out.println("file1的路径:" + file1.getAbsolutePath());
// System.out.println("file2的路径:" + file2.getAbsolutePath());
}
public static void fileTraverse(File [] files){
if(files != null && files.length > 0){
for (File file: files) {
if(file.isFile()){
// 找到目标文件了
if(file.getName().endsWith(".pdf")){
System.out.println("找到一个pdf文件:" + file.getAbsolutePath());
}
}else{
//文件夹
File[] files2 = file.listFiles();
fileTraverse(files2);
}
}
}
}
public static void listFiles(File file){
// 创建fileFilter过滤器并且描述规则
FileFilter fileFilter = new AVIFileFilter();
// 通过文件获取子文件
File[] files = file.listFiles(fileFilter);
if(files != null && files.length > 0)// 这一步很重要 很可能会有空文件
for (File f: files) {
if(f.isDirectory()){
listFiles(f);
}else{
System.out.println("找到一个pdf:" + f.getAbsolutePath());
}
}
}
static class AVIFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(".pdf") || pathname.isDirectory()){
return true;
}
return false;
}
}
public static void listFiles2(File file){
// 创建fileFilter过滤器并且描述规则
// 通过文件获取子文件
File[] files = file.listFiles(new FileFilter(){
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(".pdf") || pathname.isDirectory()){
return true;
}
return false;
}
});
if(files != null && files.length > 0)// 这一步很重要 很可能会有空文件
for (File f: files) {
if(f.isDirectory()){
listFiles(f);
}else{
System.out.println("找到一个pdf:" + f.getAbsolutePath());
}
}
}
}



