java高级特性——IO流相关概念及实例(1)

File类:

File类代表一个特定的文件或者目录(文件夹),并提供了若干方法对该文件或目录进行操作。

File类构造方法:

常用的有三种:
1、File(String pathname):通过路径名创建一个新 File 实例。

2、File(File parent, String child):根据父目录路径File实例和子目录或文件路径创建一个新 File 实例。

3、File(String parent, String child) :根据父目录路径和子目录或文件路径创建一个新 File 实例。
 

import java.io.File;

public class Work {

	public static void main(String[] args){
	
		File file = new File("E:\\网易有道词典\\Youdao\\Dict\\guid.dat"); //第一种方式。
		System.out.println(file.getPath()); //getPath()返回该file的路径。
		
		file=new File(new File("E:\\网易有道词典\\Youdao"),"Dict\\guid.dat"); //第二种方式。
		System.out.println(file.getPath());‘
		
		file=new File("E:\\网易有道词典\\Youdao\\Dict","guid.dat"); //第三种方式。
		System.out.println(file.getPath());
	}
}

输出:
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat

File类常用方法:

1、isDirectory(): 判断此File对象代表的路径表示是不是文件夹,只有File对象代表路径存在且是一个目录时才返回true,否则返回false。

2、isFile():判断此File对象代表的路径是否是一个标准文件,只有File对代表路径存在且是一个标准文件时才返回true,否则返回false。

3、getPath():返回File对象所表示的字符串路径。

4、getName():返回此对象表示的文件或目录最后一级文件夹名称。

5、getParent():返回此File对象的父目录路径名;如果此路径名没有指定父目录,则返回 null。

6、getParentFile():返回File对象所在的父目录File实例;如果File对象没有父目录,则返回 null。

7、 renameTo():重新命名此File对象表示的文件,重命名成功返回true,否则返回false。

8、 mkdir():创建此File类对象指定的目录(文件夹),不包含父目录。创建成功回true,否则返回false。

9、 mkdirs():创建此File对象指定的目录,包括所有必需但不存在的父目录,创建成功返回true;否则返回false。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。

10、createNewFile():如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false;如果所创建文件所在目录不存在则创建失败并出现IOException异常。

11、exists():判断文件或目录是否存在。

12、delete():如果该对象表示一个目录,则该目录必须为空才能删除,文件或目录删除成功返回true,否则false。

public static void main(String[] args) throws IOException {
        File f = new File("aa/bb/cc/a.txt");//未指定路径则在本类文件下创建
        File p = f.getParentFile();//返回File实例,路径为去掉最后一层的路径
        if (!p.exists()) p.mkdirs();//如果父级目录不存在,需要先用getParentFile()获取父级File 
                                       对象,用父级对象.mkdirs()可以递归创建全部的父级目录
        if (!f.exists()) f.createNewFile(); //如果父级目录可达,可以直接用createNewFile()创 
                                              建文件,也可以用mkdir()来创建目录
        System.out.println(f.getName());
        System.out.println(f.getAbsolutePath());
        System.out.println(f.getPath());
        System.out.println(f.length());
        String[] filenNames = p.list();
        System.out.println(Arrays.toString(filenNames));
//        File m=new File("m.txt");//果该对象表示一个目录,则该目录必须为空才能删除;
//        m.createNewFile();//  文件或目录删除成功返回true,否则false。
//          m.delete();
//
//        f.delete();
        System.out.println(f.getName());
        File f1 = new File("aa/bb/cc/a1.txt");
        f.renameTo(f1);//如果是在同一目录下是重命名;不同目录下是移动/剪切

结果如下:

public class Demo3_FileMethod {
    /*
    * A:重命名和删除功能
        * public boolean renameTo(File dest):把文件重命名为指定的文件路径
        * public boolean delete():删除文件或者文件夹
    * B:重命名注意事项
        * 如果路径名相同,就是改名。
        * 如果路径名不同,就是改名并剪切。
    * C:删除注意事项:
        * Java中的删除不走回收站。
        * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
     */
    public static void main(String[] args) {
        //renameTo();
        //delete()方法删除要小心,因为它不走回收站
        File file1 = new File("yyy.txt");
        System.out.println(file1.delete());     //true

        File file2 = new File("aaa");
        System.out.println(file2.delete());     //true

        File file3 = new File("ccc");       //如果删除一个文件夹,那么文件夹必须是空的
        System.out.println(file3.delete());     //false
    }

    private static void renameTo() {
        //File file1 = new File("xxx.txt");
        File file2 = new File("ooo.txt");
        //System.out.println(file1.renameTo(file2));
        File file3 = new File("D:\\XXX.txt");
        System.out.println(file2.renameTo(file3));
    }

}

补充:将一个路径下的所有文件都打印出来

public class TestFile {
    public static void listFileNames(String path){
        File f=new File(path);
        if (!f.exists())
            return;
        System.out.println(path);
        if (f.isFile()){
            return;
    }
    File[] children=f.listFiles();
        if (children==null||children.length==0){
        return;
        }
        for (File f1:children){
            listFileNames(f1.getPath());
        }
    }

 public static void main(String[] args) throws IOException {

         listFileNames("aa");

    }

结果如下:

猜你喜欢

转载自blog.csdn.net/kkkyzp/article/details/121429157