Java学习—IO—File(一)
File类是文件和目录路径名的抽象表示形式。
File类中常见的方法:
一、创建文件。
1、 boolean createNewFile():功能:当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。返回值:如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false 。这与输出流不同,输出流一旦建立就会创建文件并将原有文件覆盖。
2、 static File createTempFile(stringprefix,string suffix):首先注意该方法为static,功能:在默认目录中创建以prefix为前缀,以suffix为后缀名的文件。返回值:返回新建空文件的抽象路径名。
3、 static File createTempFile(stringprefix,string suffix,File directory):首先注意该方法为static,功能:在directoryz为指定目录中创建以prefix为前缀,以suffix为后缀名的文件。返回值:返回新建空文件的抽象路径名。
4、 boolean mkdir
()
:创建此抽象路径名指定的目录。boolean mkdirs
()
:创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
二、删除文件
1、 booleandelete()功能:删除此抽象路径名表示的文件或目录。返回值:删除成功返回true失败返回false。
2、 void deleteOnExit()功能:在程序退出时删除指定文件。
三、判断文件(在判断之前应该首先判断文件是否存在)
1、 Boolean canExecute():判断此抽象路径名表示的文件或目录是否可执行。
2、 Boolean canRead():判断此抽象路径名表示的文件或目录是否可读。
3、 int compareTo
(
File
pathname)
:功
能:按字母顺序比较两个抽象路径名。返回值:如果该参数等于此抽象路径名,则返回零;如果此抽象路径名在字母顺序上小于该参数,则返回小于零的值;如果此抽象路径名在字母顺序上大于该参数,则返回大于零的值
4、 boolean exists():判断文件是否存在。
boolean isAbsolute():测试此抽象路径名是否为绝对路径名。
boolean isDirectory():测试此抽象路径名表示的文件是否是一个目录。
boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
boolean isHidden():测试此抽象路径名指定的文件是否是一个隐藏文件。
四、获取文件信息(方法大部分以get开头)
1、File
getAbsoluteFile
()
返回此抽象路径名的绝对路径名形式。
2
、
String
getAbsolutePath
()
返回此抽象路径名的绝对路径名字符串。
3
、
File
getCanonicalFile
()
返回此抽象路径名的规范形式。
4
、
String
getName
()
返回由此抽象路径名表示的文件或目录的名称。
5、long
length
()
返回由此抽象路径名表示的文件的长度。
6、boolean
renameTo
(
File
dest)
重新命名此抽象路径名表示的文件。(可以实现类似剪切的功能)
五、文件列表
1、String
[]
list
()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
2
、
String
[]
list
(
FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
3
、
File
[]
listFiles
()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
4
、
File
[]
listFiles
(
FileFilter
filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
5
、
File
[]
listFiles
(
FilenameFilter
filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
示例如下
package com.abin;
import java.io.File;
import java.io.FilenameFilter;
public class FileListDemo {
public static void main(String[] args) {
Filedir_1= new File("E:\\");
listRoot();
listFile(dir_1);
Filedir_2= new File("C:\\Documents andSettings\\Administrator\\My Documents\\My Pictures\\樱木花道");
//打印出指定目录下,指定后缀名的文件名
listFile(dir_2,".jpg");
}
/*
* 功能:列出当前操作系统中的盘符
* 返回值:无
*/
public static void listRoot() {
File[]files= File.listRoots();
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
}
}
/*
* 功能:列出指定文件下的所有文件名称
* 参数:指定文件目录
* 返回值:无
*/
public static void listFile(File file) {
//注意调用该方法的文件必须代表文件夹且必须真实存在
String[]files=file.list();
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
}
}
/*
* 功能:列出指定文件下的所有符合指定格式的文件名称
* 参数:指定需要列出文件名的格式
* 返回值:无
*/
public static void listFile(File dir,final String str) {
String[]files= dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(str);
}
});
for (String name : files) {
System.out.println(name);
}
}
}