zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Java IO系列(一):File类详解编程语言

JAVAIO编程语言 详解 系列 File
2023-06-13 09:20:22 时间

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参考文档。

7815.html

cjava