Java基础语法-File

一、File概述

java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。

java把文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。

File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法。

二、File静态变量

1.File.pathSeparator 和 File.pathSeparatorChar:路径分隔符,window是分号,linux是冒号。

2.File.separator 和 File.separatorChar:文件名称分隔符,window是反斜杠\,linux是正斜杆/。

三、绝对路径和相对路径

绝对路径:是一个完整的路径,是以盘符开始的路径:C:\Program Files\Common Files。

相对路径:是一个简化的路径,相对是指相对于当前项目的根目录,如果使用当前项目的根目录,路径可以简化书写。

注意:1.路径是不区分大小写的。

          2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠。

四、File类的构造方法

1.File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新的File实例。

String pathname :字符串的路径名称。

路径可以是以文件结尾,也可以是以文件夹结尾。

路径可以是相对路径,也可以是绝对路径。

路径可以是存在,也可以是不存在的。

创建File对象,只要把字符串路径封装为File对象,不考虑路径真假情况。

代码示例:

File file1 = new File("E:\\a.txt");
System.out.println(file1);//返回结果:E:\a.txt
File file2 = new File("E:\\test");
System.out.println(file2);//返回结果:E:\test
File file3= new File("b.txt");
System.out.println(file3);//返回结果:b.txt

2.File(String parent, String child) 根据parent 路径名字符串和child路径名字符串创建一个新的File实例。

父路径和子路径,可以单独书写,使用起来非常灵活,父路径和子路径都可以变化。

代码示例:

String parent = "E:\\";
String child = "a.txt";
File file = new File(parent,child);
System.out.println(file);//返回结果:E:\a.txt

3.File(File parent, String child) 根据parent抽象路径名和child路径名字符串创建一个新File实例。

父路径和子路径,可以单独书写,使用起来非常灵活,父路径和子路径都可以变化。

父路径是File类型,可以使用File的方法对路径进行一些操作,在使用路径创建对象。

代码示例:

File parentFile = new File("E:\\");
File file = new File(parentFile,"a.txt");
System.out.println(file);//返回结果:E:\a.txt

4.File(URI uri) 通过将给定的file:URI转换为一个抽象路径来创建一个新的File实例。

代码示例:

try {
    File file = new File(new URI("file:///c:/a.bat"));
    System.out.println(file.getName());//结果:a.bat
} catch (URISyntaxException e) {
    e.printStackTrace();
}

五、File类的常用方法

1.public String getAbsolutePath():返回此File的绝对路径名字符串。

File file1 = new File("E:\\filetest\\a.txt");
File file2 = new File("a.txt");
String absolutePath1 = file1.getAbsolutePath();
String absolutePath2 = file2.getAbsolutePath();
System.out.println(absolutePath1);//返回结果:E:\filetest\a.txt
System.out.println(absolutePath2);//返回结果:E:\filetest\a.txt

2.public String getPath():将此File转换为路径名称字符串。

File file1 = new File("E:\\filetest\\a.txt");
File file2 = new File("a.txt");
String path1 = file1.getPath();
String path2 = file2.getPath();
System.out.println(path1);//返回结果:E:\filetest\a.txt
System.out.println(path2);//返回结果:a.txt

3.public String getName():返回由此File表示的文件或目录的名称。

File file1 = new File("E:\\filetest\\a.txt");
File file2 = new File("E:\\filetest\\test");
String name1 = file1.getName();
String name2 = file2.getName();
System.out.println(name1);//返回结果:a.txt
System.out.println(name2);//返回结果:test

4.public long length():返回由此File表示的文件的长度。获取的是构造方法指定的文件大小,以字节为单位,

文件夹是没有大小概念的,不能获取文件夹大小,如果构造方法中给出的路径不存在,那么length方法返回值为0。

File file1 = new File("E:\\a.jpg");//存在这张图片
long length1 = file1.length();
System.out.println(length1);//241351
File file2 = new File("E:\\b.jpg");//不存在这个图片
long length2 = file2.length();
System.out.println(length2);//0

5.public boolean exists():此File表示的文件或目录是否实际存在,存在 true,不存在false。

File file = new File("E:\\maven");
System.out.println(file.exists());//true

6.public boolean isDirectory():用于判断构造方法中给定的路径是否以文件夹结尾。

   public boolean isFile():用于判断构造方法中给定的路径是否以文件结尾。

7.public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个空文件。创建文件的路径和名称存在构造方法中,文件不存在,创建文件,返回true;文件存在,不创建,返回false。次方法只能创建文件,不能创建文件夹,创建文件的路径必须存在,否则抛出异常。

try {
    File file = new File("E:\\1.txt");
    boolean newFile = file.createNewFile();
    System.out.println(newFile);//true
} catch (IOException e) {
    e.printStackTrace();
}

再执行一遍上面代码返回false。

8.public boolean mkdir():创建单级空文件夹

   public boolean mkdirs():可以创建单级空文件夹,也可以创建多级文件夹。创建文件的路径和名称存在构造方法中,文件夹不存在,创建文件,返回true;文件夹存在,不创建,返回false,构造方法中给出的路径不存在返回false。次方法只能创建文件夹,不能创建文件。

try {
    File file = new File("E:\\fileTest\\aa\\bb\\cc");
    boolean newFile = file.mkdirs();
    System.out.println(newFile);//true
} catch (Exception e) {
    e.printStackTrace();
}

9.public boolean delete():删除由此File表示的文件或目录。可以删除文件或文件夹。

文件/文件夹删除成功返回true,文件夹中有内容,不会删除返回false,路径不存在返回false。该方法直接在硬盘删除文件或者文件夹,不会走回收站。

10.public String[] list():返回一个String数组,表示该File目录中的所有子文件或文件夹。遍历构造方法中给出的目录,会获取目录中所有文件或文件夹的名称,把获取到的多个名称存储到一个String类型的数组中。

File file = new File("F:\\apache-tomcat-7.0.96\\apache-tomcat-7.0.96");
String[] list = file.list();
for (String fileName : list){
    System.out.println(fileName);
}

11.public File[] listFiles():返回一个File数组,表示该File目录中的所有的子文件或者目录。遍历构造方法中给出的目录,会获取目录中所有的文件或文件夹,把文件或文件夹封装为File对象。多个File对象存储到File数组中。

File file = new File("F:\\apache-tomcat-7.0.96\\apache-tomcat-7.0.96");
File[] files = file.listFiles();
for (File f : files){
    System.out.println(f.getName());
}

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值