在Java中,我们往往需要访问本地文件,在Java程序中,我们用File类来创建对象来关联文件对象,File file = new File("");,双引号里面是文件的相对路径或者绝对路径,如果我要关联的文件就在Java工程包下,那么我们直接在双引号里面写文件的名字就能关联到这个文件,这是相对路径。如果我们要关联一个在本地,却不在java工程包下的文件,我们就要使用这个文件的绝对路径,也就是文件存储的地址。
File类有很多构造方法,像isFile():判断一个File对象是文件还是路径,通俗来说,就是File对象是文件还是文件夹。还有getName(),获取一个File对象的名字等等,这些可以通过API查得到。
那么如何运用File类来写一个查询本地文件的程序呢?
代码演示:
public class FileSearch{
public static void main(String[] args) {
FileSearch fs = new FileSearch();
fs.searchFile("E:\\huaxin\\fivechess");
}
public void searchFile(String path) {
// 关联文件对象
File file = new File(path);
// 判断当前file是文件还是文件夹,是文件就输出文件绝对地址,是路径就继续查找
if (file.isFile()) {
if (file.getName().equals("Chess.java")) { //判断查出的文件名和初始的文件名是否相同,相同就打印,不同就往下一级继续查询
//将符合条件的地址打印在JTextArea中
System.out.println(file.getAbsolutePath());
}
} else {
File[] files = file.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
// 将其中的文件夹遍历出来,并调用searchFile方法的调用
File childFile = files[i];
searchFile(childFile.getAbsolutePath());//这里用递归的思想,在方法中再调这个方法,完成在下一级目录的查询,一直到找出所 有符合条件的文件
}
}
}
}
}
File类有很多构造方法,像isFile():判断一个File对象是文件还是路径,通俗来说,就是File对象是文件还是文件夹。还有getName(),获取一个File对象的名字等等,这些可以通过API查得到。
那么如何运用File类来写一个查询本地文件的程序呢?
代码演示:
public class FileSearch{
public static void main(String[] args) {
FileSearch fs = new FileSearch();
fs.searchFile("E:\\huaxin\\fivechess");
}
public void searchFile(String path) {
// 关联文件对象
File file = new File(path);
// 判断当前file是文件还是文件夹,是文件就输出文件绝对地址,是路径就继续查找
if (file.isFile()) {
if (file.getName().equals("Chess.java")) { //判断查出的文件名和初始的文件名是否相同,相同就打印,不同就往下一级继续查询
//将符合条件的地址打印在JTextArea中
System.out.println(file.getAbsolutePath());
}
} else {
File[] files = file.listFiles();
if (files != null) {
for (int i = 0; i < files.length; i++) {
// 将其中的文件夹遍历出来,并调用searchFile方法的调用
File childFile = files[i];
searchFile(childFile.getAbsolutePath());//这里用递归的思想,在方法中再调这个方法,完成在下一级目录的查询,一直到找出所 有符合条件的文件
}
}
}
}
}
以上程序是在E:\huaxin\fivechess这个目录下,来查找Chess.java这个文件,并打印出来输出结果为:E:\huaxin\fivechess\src\com\huaxin\fivechess\Chess.java