I/O框架介绍
I/O是计算机输入/输出的接口。Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等。
File类及使用
① 一个File类的对象,表示了磁盘上的文件或目录。
② File类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。
③ File类直接处理文件和文件系统。比如删除文件,获取文件长度大小信息。
④ File类没有提供方法从文件中读取或向文件中存储信息。
⑤ 构造方法:
a) File(String directoryPath)
b) File(String directoryPath,String filename)
c) File(File dirObj,String filename)
⑥ File定义了获取File对象标准属性的方法。
⑦ 部分File类常用方法:
a) public String getName()
b) public String getParent()
c) public File getParentFile()
d) public String getAbsolutePath()
e) public boolean exists()
f) public File[] listFile()
g) public boolean isDirectory()
h) public boolean isFile()
i) public long length()
j) boolean delete()
k) boolean mkdir()
先在d盘下创建一个名为doc的文件夹,文件夹内创建一个txt文本文件
1 File file = new File("d:\\doc");// windows下使用\\或/,linux下使用/ 2 System.out.println(file.getAbsolutePath());// 返回此抽象路径名的绝对路径名字符串 3 System.out.println(file.getParent());// 获取上一级目录的字符串 4 System.out.println(file.isDirectory());// 判断路径名表示的文件是否是一个目录 5 System.out.println(file.isFile());// 判断路径名表示的文件是否是一个标准文件 6 System.out.println(file.exists());// 判断抽象路径名表示的文件或目录是否存在 7 System.out.println(file.length());// 返回由此抽象路径名表示的文件的长度 8 System.out.println(file.delete());// 删除此抽象路径名表示的文件或目录--若目录下存在文件则不可删除
输出结果
d:\doc
d:\
true
false
true
0
false
创建目录及目录下创建文件
1 File myFile = new File("d:\\zhangsan"); 2 System.out.println(myFile.mkdir());// 创建不存在的目录 3 4 File myFile2 = new File("d:\\zhangsan\\ceshi.txt"); 5 try { 6 System.out.println(myFile2.createNewFile());// 创建指定目录下不存在的文件 7 } catch (IOException e) { 8 e.printStackTrace(); 9 }
输出结果
true
true
在zhangsan目录下的ceshi.txt中随意输入一些字符,再添加一张图片
获取目录下所有的文件
1 String[] files = myFile.list();// 获取目录下所有的文件 2 for (String f : files) { 3 System.out.println(f); 4 }
输出结果
ceshi.txt
tu.png
返回所有以txt为后缀名的文件
1 String[] files2 = myFile.list(new FilenameFilter() { 2 3 @Override 4 public boolean accept(File dir, String name) { 5 return name.endsWith(".txt");//返回所有以txt为后缀名的文件 6 } 7 }); 8 for (String f : files2) { 9 System.out.println(f); 10 }
输出结果
ceshi.txt
获取目录中所有的文件,名称及大小
1 File[] files3=myFile.listFiles(); 2 for(File f:files3){ 3 System.out.println(f.getName()+"--"+f.length()); 4 }
输出结果
ceshi.txt--140
tu.png--73425
返回目录下所有以txt为后缀名的文件,名称及大小
方法一
1 File[] files4=myFile.listFiles(new FilenameFilter() { 2 3 @Override 4 public boolean accept(File dir, String name) { 5 return name.endsWith(".txt");//返回目录下所有以txt为后缀名的文件 6 } 7 }); 8 for(File f:files4){ 9 System.out.println(f.getName()+"--"+f.length()); 10 }
输出结果
ceshi.txt--140
方法二
1 File[] files5=myFile.listFiles(new FileFilter() { 2 3 @Override 4 public boolean accept(File pathname) { 5 return pathname.getName().endsWith(".txt"); 6 } 7 }); 8 for(File f:files5){ 9 System.out.println(f.getName()+"--"+f.length()); 10 }
输出结果
ceshi.txt--140