(1)在Java程序中通过使用java.io包提供的一些接口和类,对计算机中的文件进行基本的操作,包括对文件和目录属性的操作、对文件读写的操作。
(2)File对象既可以表示文件,也可以表示目录,在程序中一个File对象可以代表一个文件或目录。
(3)利用File类可以来对文件或目录进行基本操作。它可以查出与文件相关的信息,如名称、最后修改日期、文件大小等。
、
public static void main(String[] args) { // 创建File类对象,该对象指向F盘中a.txt文件和demo目录(文件夹) File file1 = new File("F:\\a.txt"); File file2 = new File("F:/demo"); // 通过File类对象调用方法获取文件或者目录的属性 // boolean exists() 测试此抽象路径名表示的文件或目录是否存在。 boolean result1 = file1.exists(); System.out.println("file1指向的文件存在:" + result1); System.out.println("file2指向的目录存在:" + file2.exists()); // boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。 // boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。 System.out.println("file1对象指向的是一个文件:"+file1.isFile()); System.out.println("file1对象指向的是一个目录:"+file1.isDirectory()); System.out.println("file2对象指向的是一个文件:"+file2.isFile()); System.out.println("file2对象指向的是一个目录:"+file2.isDirectory()); // String getName() 返回由此抽象路径名表示的文件或目录的名称。 System.out.println("file1对象指向的文件名:"+file1.getName()); System.out.println("file2对象指向的目录名:"+file2.getName()); // long length()返回由此抽象路径名表示的文件的长度 ,返回的结果值是一个大概值,是不确定的 System.out.println("file1对象指向的文件的长度:"+file1.length()); }
(4)File类的常用构造方法如下所示:
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 |
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。 |
File(URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。 |
(5)File类的常用方法如下所示:
方法摘要 | |
boolean |
canRead() 测试应用程序是否可以读取此抽象路径名表示的文件。 |
boolean |
createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 |
static File |
createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
static File |
createTempFile(String prefix, String suffix, File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
boolean |
delete() 删除此抽象路径名表示的文件或目录。 |
void |
deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
File |
getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。 |
String |
getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 |
File |
getCanonicalFile() 返回此抽象路径名的规范形式。 |
String |
getCanonicalPath() 返回此抽象路径名的规范路径名字符串。 |
long |
getFreeSpace() 返回此抽象路径名指定的分区中未分配的字节数。 |
String |
getName() 返回由此抽象路径名表示的文件或目录的名称。 |
File |
getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null 。 |
String |
getPath() 将此抽象路径名转换为一个路径名字符串。 |
long |
getTotalSpace() 返回此抽象路径名指定的分区大小。 |
long |
getUsableSpace() 返回此抽象路径名指定的分区上可用于此虚拟机的字节数。 |
int |
hashCode() 计算此抽象路径名的哈希码。 |
boolean |
isAbsolute() 测试此抽象路径名是否为绝对路径名。 |
boolean |
isDirectory() 测试此抽象路径名表示的文件是否是一个目录 |
long |
lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。 |
long |
length() 返回由此抽象路径名表示的文件的长度。 |
String[] |
list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] |
listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
File[] |
listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 |
boolean |
setExecutable(boolean executable) 设置此抽象路径名所有者执行权限的一个便捷方法。 |
boolean |
setExecutable(boolean executable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的执行权限。 |
boolean |
setLastModified(long time) 设置此抽象路径名指定的文件或目录的最后一次修改时间。 |
boolean |
setReadable(boolean readable) 设置此抽象路径名所有者读权限的一个便捷方法。 |
boolean |
setReadable(boolean readable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的读权限。 |
boolean |
setReadOnly() 标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。 |
boolean |
setWritable(boolean writable) 设置此抽象路径名所有者写权限的一个便捷方法。 |
boolean |
setWritable(boolean writable, boolean ownerOnly) 设置此抽象路径名的所有者或所有用户的写权限。 |
(5)案例
1)、文件删除和创建
public static void main(String[] args) throws IOException { File file1 = new File("F:/b.txt"); //如果file1对象指向的文件不存在,就创建file1对象指向的文件 if(!file1.exists()){ // boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 file1.createNewFile(); System.out.println("文件创建成功"); }else{ //boolean delete() 删除此抽象路径名表示的文件或目录。 file1.delete(); System.out.println("文件删除成功"); } }
2)、文件目录的删除和创建
public static void main(String[] args) { File file1 = new File("F:test"); //如果file1指向的目录不存在,就创建目录,如果目录存在,就删除这个目录 if(file1.exists()){ file1.delete(); System.out.println("目录删除成功"); }else{ // boolean mkdir() 创建此抽象路径名指定的目录。 file1.mkdir(); System.out.println("目录创建成功"); } File file2 = new File("F:/a/b/c/d"); //boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 boolean result =file2.mkdirs(); System.out.println("file2对象指向的目录创建成功:"+result); }
3)、返回路径和绝对路径
public static void main(String[] args) throws IOException { File file1 = new File("test.txt"); file1.createNewFile(); // String getPath() 将此抽象路径名转换为一个路径名字符串。 String path =file1.getPath(); System.out.println(path);//absolutePath //String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。 String absolutePath=file1.getAbsolutePath(); System.out.println(absolutePath);//E:\MyEclipseWorkspaces03\Day23输入输出\test.txt }