1,用来将文件或文件夹封装成对象。---->File f = new File(“f:”+File.separator+”Demo01.txt”) ;
2,方便对文件或文件夹的属性信息进行操作。
3,File对象可以作为参数传递给流的构造函数。
---------->File对象常见功能
(1)获取
-->获取文件名称
-->获取文件路径
-->获取文件大小
-->获取文件修改时间
package org.panda.io;
import java.io.File;
import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class FileDemo01 {
public static void main(String[] args) {
getDemo01();
}
private static void getDemo01() {
File f = new File("f:"+File.separator+"Demo01.txt") ; //将文件或文件夹封装成File对象
String name = f.getName() ; //取得文件名称
String path = f.getPath() ; //取得文件的相对路径
String absPath = f.getAbsolutePath() ;//取得文件的绝对路径
long len = f.length() ; //取得文件长度
long time = f.lastModified() ; //取得文件上次修改时间
//声明并实例化对象
Date date = new Date(time) ;
//定义时间显示格式
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd") ;
String str_time = dateFormat.format(date) ;
String str_time1 = sdf.format(date) ;
System.out.println("name: "+name);
System.out.println("path: "+path);
System.out.println("absPath: "+absPath);
System.out.println("len: "+len);
System.out.println("time: "+time);
System.out.println("time: "+str_time);
System.out.print("time: "str_time1);
}
}
(2)深度遍历
需求:对指定目录进行所有内容的列出(包含子目录中内容 )---->称为深度遍历
package org.panda.io;
import java.io.File;
public class FileTestDemo01 {
public static void main(String[] args) {
File dir = new File("f:\\EOS") ;
listAll(dir) ;
}
private static void listAll(File dir) {
//打印目录
System.out.println("dir:"+dir.getAbsolutePath()) ;
//获取指定dir中的所有file
File[] files = dir.listFiles() ;
//循环遍历
for(int i=0;i<files.length;i++)
{
if(files[i].isDirectory())
{
listAll(files[i]) ;
}
else
{
System.out.println("file: "+files[i].getAbsolutePath());
}
}
}
}
(3) 递归
函数自身调用或间接调用到自身。
一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关----这时,使用递归来解决问题。
注意:递归一定要明确条件,否则容易栈溢出