Java IO系列(一):File类

File类是一切IO之基础,要想学好IO,File类是一定要学好的,API一定要滚瓜烂熟得调用。接下来,将以项目实战中的经验来进行API的操作,这样会让各API的串联度更高。(为了更清晰得理解使用,所有的Exception将throw,不在代码列出)

一:常规创建文件

在路径“F:/io/hello.txt”创建名为hello的txt文件。

File file = new File("F:" + File.separator + "io" + File.separator + "hello.txt");
        if(file.exists()){
            file.delete();
        }
        file.createNewFile();

在项目中,createNewFile一般会与exists和delete结合使用,当文件中存在此文件,先删除文件,再创建文件。

二:创建目录mkdir和mkdirs的区别

mkdir只能够创建一级目录,不能创建多级目录,而mkdirs能够创建多级目录。

String s = File.separator;
File dir = new File("F:" + s + "io" + s + "io1");

System.out.println(dir.mkdir());
System.out.println(dir.mkdirs());

结果为:

false
true

三:列出给定目录的文件清单

API有两个:
以字符串数组的形式返回:public String[] list()
以File数组的形式返回:public File[] listFiles()

假设目录“F:/io”下有a.txt,b.txt,c.txt三个文件

File dir = new File("F:" + File.separator + "io");
//数组形式返回
String[] files = dir.list();
for (String file : files) {
    System.out.println(file);
}

System.out.println();

//以File[]形式返回
File[] files2 = dir.listFiles();
for (File file : files2) {
    System.out.println(file.getName());
}

结果为:

a.txt
b.txt
c.txt

a.txt
b.txt
c.txt

四:getPath,getAbsolutePath和getCanonicalPath的区别

getPath()返回的是构造方法里的路径,不做任何处理
getAbsolutePath()返回的是 user.dir+getPath(),也就是执行路径加上构造方法中的路径
getCanonicalPath()返回的是将符号完全解析的路径,也就是全路径

System.out.println("------默认相对路径,取得路径不同-----");
File f = new File("..\\src\\file");
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
System.out.println(f.getCanonicalPath());

System.out.println("------默认相对路径,取得路径不同-----");
File f2 = new File(".\\src\\file");
System.out.println(f2.getPath());
System.out.println(f2.getAbsolutePath());
System.out.println(f2.getCanonicalPath());

System.out.println("------默认绝对路径,取得路径相同-----");
File f3 = new File("F:\\io\\a.txt");
System.out.println(f3.getPath());
System.out.println(f3.getAbsolutePath());
System.out.println(f3.getCanonicalPath());

结果为:

------默认相对路径,取得路径不同-----
..\src\file
E:\JavaWorkSpace\TestIO\..\src\file
E:\JavaWorkSpace\src\file
------默认相对路径,取得路径不同-----
.\src\file
E:\JavaWorkSpace\TestIO\.\src\file
E:\JavaWorkSpace\TestIO\src\file
------默认绝对路径,取得路径相同-----
F:\io\a.txt
F:\io\a.txt
F:\io\a.txt

综上所述,常见File的疑难杂点大概就是这些,更多API参考文档。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值