I/O流——File类及使用


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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM