IO流/File

来源:互联网 发布:pc机安装mac os x 编辑:程序博客网 时间:2024/05/26 09:54

new File(String pathname);
通过将给定路径来创建一个新File实例。
new File(String parent, String child);
根据parent路径名字符串和child 路径名创建一个新File实例。
new File(File parent, String child);
根据parent抽象路径名和child路径名创建一个新File实例。
new File(“c:” + File.separatorChar + “a.txt”);//路径分隔符

getName() 获取文件或文件夹的名称,不包含上级路径。
getPath() 返回绝对路径,可以是相对路径,但是目录要指定
getAbsolutePath() 获取文件的绝对路径,与文件是否存在没关系
length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
lastModified() 获取最后一次被修改的时间。
staic File[] listRoots() 列出所有的根目录(Window中就是所有系统的盘符)
list() 返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。
list(FilenameFilter filter) 返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。
listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。
listFiles(FilenameFilter filter) 返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。
/**
* 列出指定目录中所有包含的子文件与子目录
*/
public static void listAllFilesAndDirs(String path) {
// 1.创建File对象,表示这个目录
File dir = new File(path);
// 2.通过list方法得到所包含的所有子目录与子文件名称
String[] names = dir.list();
// 3显示这些名称
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
/**
*列出指定目录中所有的子文件名与所有的子目录名,要求目录名与 文件名分开列出
*/
public static void listAllFilesAndDirs2(String path) {//实现一
// 1.创建File对象,表示这个目录
File dir = new File(path);
// 2通过listFiles方法得到所包含的所有子目录与子文件名称
File[] names = dir.listFiles();
// 3,分别显示文件名与文件夹名
for (int i = 0; i < names.length; i++) {
File file = names[i];
if (file.isFile()) {
System.out.println((“子文件:”));
System.out.println(“\t” + file.getName());
} else if (file.isDirectory()) {
System.out.println((“子目录:”));
System.out.println(“\t” + file.getName());
}
}
}
public static void listAllFilesAndDirs(String path) {//实现二
//1创建File对象表示这个目录
File dir = new File(path);
//2通过listFiles方法得到所包含的所有子目录与子文件名称
File[] names = dir.listFiles();
//3,得到所有的文件名集合,与所有的文件夹名集合
List filesList = new ArrayList();
List dirsList = new ArrayList();
for (int i = 0; i < names.length; i++) {
File file = names[i];
if (file.isFile()) {
filesList.add(file);
} else if (file.isDirectory()) {
dirsList.add(file);
}
}
//4,分别显示文件名与文件夹名
System.out.println(“子文件:”);
for (int i = 0; i < filesList.size(); i++) {
System.out.println(“\t” + filesList.get(i).getName());
}
System.out.println(“子目录:”);
for (int i = 0; i < dirsList.size(); i++) {
System.out.println(“\t” + dirsList.get(i).getName());
}
}
//列出指定目录中所有扩展名为.java的文件
public class FileTest2 {
public static void main(String[] args) {
String path = “c:” + File.separatorChar + “test”;
File file = new File(path);
listtAllFiles(file, “java”);
}
/**
* 从指定目录中找到指定扩展名的文件,并列出来
*
*/
public static void listtAllFiles(File dir, String extension) {
// 1.获取所有的子文件和子文件夹
File[] files = dir.listFiles();
// 2.从中找出符合条件的文件并显示出来
for (int i = 0; i < files.length; i++) {
File file = files[i];
// 3.需要以指定文件后缀结尾才算符合条件
if (file.getName().endsWith(extension)) {
System.out.println(file.getName());
}
}
}
}

public class FileTest2 {
public static void main(String[] args) {
String path = “c:” + File.separatorChar + “test”;
File file = new File(path);
listtAllFiles2(file, “txt”);
}

/** * FilenameFilter接口写一个工具类,可以传递指定的过滤规则。 *  从指定目录中找到指定扩展名的文件,并列出来 * * */public static void listtAllFiles2(File dir, String name) {    // 1.获取所有的子文件和子文件夹    String[] files = dir.list(new DirFilter("txt"));    // 2显示名称    for (int i = 0; i < files.length; i++) {        System.out.println(files[i]);    }}

}

class DirFilter implements FilenameFilter {
private String extension;

public DirFilter() {}public DirFilter(String extension) {    this.extension = extension;}@Overridepublic boolean accept(File dir, String name) {    return name.endsWith(extension);}

}
注意: DirFilter 就是实现了accept 方法.提供给File类的list方法使用.

原创粉丝点击