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