在整个java.io包中,File类是唯一的一个与文件本身操作有关的类,既可以执行文件的创建、删除、重命名,取得文件大小和修改日期。
File的构造函数:
public File(String pathname) 给定一个要操作文件的完整路径。
public File(File parent , String child) 给定要操作文件的父路径和子文件夹。
使用File类操作文件:
public boolean createNewFile() throws IOException 创建文件
public boolean delete() 删除文件
public boolean exists() 判定给定路径是否存在
public File getParentFile() 找到一个指定路径的父路径
public boolean mkdirs() 创建指定目录
public String getName() 取得文件名称
public boolean isdirectory() 判断给定的零是否是文件夹
public boolean isFile() 判断给定的路径是否是文件
public boolean isHidden() 判断是否隐藏
public long lastModified() 文件的最后一次修改日期
public long length() 取得文件大小,以字节为单位返回
public boolean renameTo(File dest) 为文件重命名
public File[ ] listFiles() 将目录中所有文件以File对象数组的方式返回
示例1:创建带目录的文件:
import java.io.File;public class FileTest{public static void main(String args[])throws Exception{ //文件的路径 File file=new File("D:"+File.separator+"Hellodemo"+File.separator+"my" +File.separator+"test"+File.separator+"demo.txt"); //父路径不存在 if(!file.getParentFile().exists()){ //创建路径 file.getParatorFile().mkdirs(); } //文件存在 if(file.exists){ //删除文件 file.delete(); }else{ //文件不存在,创建新文件 file.createNewFile(); } }}
示例:将一个目录中的全部文件都列出来,包括所有子目录中的所有文件。
那么这种情况只能采用递归方式,因为列出一个目录下的全部文件或文件夹后,如果发现列出的内容是文件夹,则应该向后继续列出。
源代码:
import java.io.File;public class FileTest{ public static void main(String args[]){ /* 在Windows操作系统中,使用“”作为路径分隔符,而在Linux系统下//则使用“/”作为路径分隔符,为保证代码的移植性,为此在File类中//提供了一个常量:public static final String separator 作为系统路径分隔符使用 */ File file = new File("H:"+File.separator); print(file); } //递归方法 public static void print(File file){ //判断给定路径file是否为文件夹 if(file.isDirectory()){ //取得目录中的全部文件和文件夹 File result[] = file.listFiles(); if(result!=null){ for(int x=0;x
运行结果: