首先让我们来了解下什么叫做IO流:
IO流:既输入输出流,(input,output), 其中分为两种:第一种为字节流 第二种为字符流
首先来了解下IO流中的 File (文件)
一些常用的方法有:exists() 判断文件是否存在 存在返回true 不存在返回false
isFile() 判断是否是文件 返回值:同上
isDirectory() 判断是否是文件夹 返回值:同上
getName() 获得文件名称
getAbsolutePath() 获取绝对路径
length() 获取文件长度(字节)
createNewFile() 创建一个新的文件
delete() 删除文件
listFiles() 获取路径下的文件(包括文件夹)个数 返回值:File[]
list() 获取路径下所有文件的名称 返回值:String[]
定义一个File对象
File file = new File("D:/text/t.txt"); 注意:双引号里面写的是文件的路径,其中\\和/的作用是一样的
if(!file.exists()){ //判断文件通常我们用来判断输入的路径是否正确,文件是否存在
System.out.println("输入的文件不存在");
return;
}
其余的方法都可以用 file.XXX来测试在这里不做详细讲解...
当了解完以上所有的方法后,我们来做一下如何用递归返回文件夹下所有的文件名称.(包括文件夹下子文件中的文件)
Class FileDome{
public static void main(String[] args){
File file = new File("D:/text");
if(!file.exists()){ //判断路径是否正确
return;
}
if(file.isFile()){ //判断是否是文件
isFile(file);
}
else{ //如果是文件夹运行这个
isDirectory(file);
}
}
//如果是文件夹则调用这个方法 注意这里为了方便调用都使用了静态 可自行调整
public static void isDirectory(File file){
File[] f = file.listFiles();
for(File fl :f){
System.out.println(fl);
if(fl.isDirectory()){ //这里用递归进行调用,打印出子文件夹中的文件名称
isDirectory(fl);
}
}
}
//如果是文件则调用这里的方法
public static void isFile(File file){
String name = file.getName();
System.out.println(name);
}
}