0
点赞
收藏
分享

微信扫一扫

java中File类相关基础语法

晴儿成长记 2022-04-21 阅读 116
java

java.io.File
File类概述:
    文件和目录路径名的抽象表示形式。 
    java把电脑中的文件和文件夹封装成一个File类,我们可以使用File类对文件和文件夹进行操作
    我们可以使用File类的方法
        创建、删除、获取、判断是否存在、遍历、获取大小 一个文件/文件夹
    File类是一个与系统无关的类,任何操作系统都可以使用该类的方法
    重点记住三个单词:

file 文件
directory 文件夹/目录
path 路径

1、基础知识

/*File类静态方法
		static String pathSeparator 	与系统有关的路径分隔符,为了方便,它被表示为一个字符串。 
		static char pathSeparatorChar 与系统有关的路径分隔符。 
		static String separator 	与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。 
		static char separatorChar 	与系统有关的默认名称分隔符。 
			路径不能写死:C:\a\b\c.txt	windows
						C:/a/b/c.txt	Linux
			所以以后工作最好写成:
						C:"+File.separator+"a"+File.separator+"b"+File.separator+"c.txt
	路径:绝对路径:是一个完整路径
				以盘符【C盘 D盘。。。】开始的路径
					E:\SQL自学笔记、API文档\API
		  相对路径:是一个简化路径
				指的是相对于当前项目的根目录
				如果使用当前项目的根目录,路径可以简化书写
				C:\\a\\b\\c.txt		-->		c.txt
		注意:1、路径是不区分大小的
			2、路径中文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的字符
File构造方法:
	1、File(String pathname) 
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
	2、File(String parent, String child) 
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
			父路径和子路径可以单独书写,使用起来很灵活;父子路径都可以变化。
	3、File(File parent, String child) 
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
 *///静态方法

//构造方法
 /*
* 	File (String pathname)    通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
* 	参数:String pathname:字符串路径名称
* 	路径可以是以文件结尾,也可以以文件夹结尾
* 	路径可以是相对路径,也可以是绝对路径
* 	路径可以是存在,也可以是不存在
* 	创建File对象,只是把字符串路径封装为File对象,不考虑路径真假情况
File构造方法:
	1、File(String pathname) 
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
	2、File(String parent, String child) 
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
			父路径和子路径可以单独书写,使用起来很灵活;父子路径都可以变化。
	3、File(File parent, String child) 
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
			好处:父路径和子路径可以单独书写,使用起来很灵活;父子路径都可以变化。
				可以使用File类的方法对路径进行操作

*/
//成员方法
/*获取功能的方法:
	String getAbsolutePath() 
          返回此抽象路径名的绝对路径名字符串 
	String getPath() 
          将此抽象路径名转换为一个路径名字符串。 
	String getName() 
          返回由此抽象路径名表示的文件或目录的名称 获取的是构造方法传递路径结尾部分【文件/文件夹】	
	long length() 
          返回由此抽象路径名表示的文件的长度 	获取的是构造方法指向的文件的大小,字节为单位
			注意:文件夹是没有大小概念的,不能获取文件夹大小;如果构造方法给出的路径不存在,那么length方法返回0
*/
/*File成员方法 判断功能
	boolean exists() 
          测试此抽象路径名表示的文件或目录是否存在。 
	boolean isDirectory() 
          测试此抽象路径名表示的文件是否是一个目录。 	判断给定了路径是否以文件夹结尾
	boolean isFile() 
          测试此抽象路径名表示的文件是否是一个标准文件。 判断给定了路径是否以文件结尾
	注意:电脑硬盘不是文件就是文件夹【2、3是互斥的】,所以这两个方法的使用前提,路径必须存在
 */
/*File类创建删除功能方法
	1、boolean createNewFile() 
          当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 	创建文件的路径和名称在构造方法中给出
			注意:此方法只能创建文件;创建的文件路径必须存在
			声明抛出IOExpection,所以调用这个方法必须处理这个异常。
	4、boolean delete() 
          删除此抽象路径名表示的文件或目录 
		注意:此方法不走回收站,直接在硬盘删除
	2、boolean mkdir() 
          创建此抽象路径名指定的目录。 									创建单级文件夹
	3、boolean mkdirs() 
          创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 	既可以创建单级文件夹也可以创建多级文件夹
			注意2、3:只能创建文件夹	创建文件路径必须存在,否则会抛出异常

*/
/*File类遍历文件夹/目录功能 包括隐藏文件夹
*    String[] list()
          返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录
     File[] listFiles()
          返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
*注意:遍历的是构造方法给出的目录【参数】,如果不存在或不是一个目录,就会抛出空指针异常;
*
*  */

2、练习代码 

 public class Demo01File {
    public static void main(String[] args) {
        //1
        String pathSeparator = File.pathSeparator;//路径分隔符 windows系统是分号 Linux是冒号
        System.out.println(pathSeparator);//;
        //2
        String separator = File.separator;//文件名称分隔符 windows 反斜杠 Linux 正斜杠
        System.out.println(separator);//\
    }
}
public class Demo05File {
    public static void main(String[] args) throws IOException {
        show01();
    }

    private static void show01() throws IOException {
        //1
        File f1=new File("C:\\练习计算机\\JAVA\\1.txt");
        File f2=new File("2.txt");
        boolean newFile1 = f1.createNewFile();
        System.out.println(newFile1);//true 创建成功
        boolean newFile2 = f2.createNewFile();
        System.out.println(newFile2);
        System.out.println(f2.getAbsolutePath());//E:\IdeaProjects\java_lianxi\2.txt
        //2 3
        File f3=new File("aaa");
        boolean mkdir1 = f3.mkdir();
        System.out.println(mkdir1);
        System.out.println(f3.getAbsolutePath());//E:\IdeaProjects\java_lianxi\aaa
        File f4=new File("bbb\\ccc");
        System.out.println(f4.mkdirs());
        System.out.println(f4.getAbsolutePath());//E:\IdeaProjects\java_lianxi\bbb\ccc
        //4
        File f5=new File("bbb\\ccc");
        System.out.println(f5.delete());//true
    }
}
/*
* 递归打印多级目录
*
* */
public class Demo01Recuison {
    public static void main(String[] args) {
        File f=new File("E:\\IdeaProjects\\java_lianxi\\.idea");
        getAllFile(f);
    }
    /*参数传递File类型的目录
    * */
    public static void getAllFile(File dir){
        File[] files1 = dir.listFiles();
        /*for (File file1 : files1) {
            System.out.println(file1);//问题:输出的只是一级文件夹里的文件,子文件夹里的内容无法打印
        }*//*解决:对遍历得到的File对象进行判断
        */
        for (File file2 : files1) {
            if(file2.isDirectory()){
                getAllFile(file2);
            }
            else{
                System.out.println(file2);
            }
        }


    }
}
举报

相关推荐

java中File类的相关操作

Java中File类

Java File类详解(中)

JAVA基础语法:类和对象

java File类

【Java】File类

File类.Java

0 条评论