Java IO流——文件流

之前介绍过Java IO流包结构、java IO流的概念与分类,接下来我们详细介绍各种IO流如何使用,文章以例子为主
 
【案例1】创建一个新文件
  1. import java.io.*;
  2. class hello{
  3.     public static void main(String[] args) {
  4.         File f=new File("D:\\hello.txt");
  5.         try{
  6.             f.createNewFile();
  7.         }catch (Exception e) {
  8.             e.printStackTrace();
  9.         }
  10.     }
  11. }
【运行结果】:程序运行之后,在d盘下会有一个名字为hello.txt的文件。
 
 
【案例2】File类的两个常量
  1. import java.io.*;
  2. class hello{
  3.     public static void main(String[] args) {
  4.         System.out.println(File.separator);
  5.         System.out.println(File.pathSeparator);
  6.     }
【运行结果】:
\
;
此处多说几句:有些同学可能认为,我直接在windows下使用\进行分割不行吗?当然是可以的。但是在linux下就不是\了。所以,要想使得我们的代码跨平台,更加健壮,所以,大家都采用这两个常量吧,其实也多写不了几行。
 
现在我们使用File类中的常量改写上面的代码:
  1. import java.io.*;
  2. class hello{
  3.     public static void main(String[] args) {
  4.         String fileName="D:"+File.separator+"hello.txt";
  5.         File f=new File(fileName);
  6.         try{
  7.             f.createNewFile();
  8.         }catch (Exception e) {
  9.             e.printStackTrace();
  10.         }
  11.     }
  12. }
 
【案例3】删除一个文件 
  1. /**
  2.  * 删除一个文件
  3.  * */
  4. import java.io.*;
  5. class hello{
  6.     public static void main(String[] args) {
  7.         String fileName="D:"+File.separator+"hello.txt";
  8.         File f=new File(fileName);
  9.         if(f.exists()){
  10.             f.delete();
  11.         }else{
  12.             System.out.println("文件不存在");
  13.         }
  14.          
  15.     }
  16. }
 
  【案例4】创建一个文件夹
  1. /**
  2.  * 创建一个文件夹
  3.  * */
  4. import java.io.*;
  5. class hello{
  6.     public static void main(String[] args) {
  7.         String fileName="D:"+File.separator+"hello";
  8.         File f=new File(fileName);
  9.         if(!f.exists()){
  10.             f.mkdir();
  11.         }
  12.          
  13.     }
  14. }
【运行结果】:D盘下多了一个hello文件夹
 
【案例5】列出指定目录的全部文件(包括隐藏文件): 
  1. /**
  2.  * 使用list列出指定目录的全部文件
  3.  * */
  4. import java.io.*;
  5. class hello{
  6.     public static void main(String[] args) {
  7.         String fileName="D:"+File.separator;
  8.         File f=new File(fileName);
  9.         String[] str=f.list();
  10.         for (int i = 0; i < str.length; i++) {
  11.             System.out.println(str[i]);
  12.         }
  13.     }
  14. }
【运行结果】:
$RECYCLE.BIN
360
360Downloads
360Rec
360SoftMove
Config.Msi
da
Downloads
DriversBackup
eclipse
java web整合开发和项目实战
Lenovo
MSOCache
Program
Program Files
python
RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}
System Volume Information
Tomcat6
var
vod_cache_data
 
【案例6】列出指定目录的全部文件(包括隐藏文件):
使用list返回的是String数组,。而且列出的不是完整路径,如果想列出完整路径的话,需要使用listFiles.他返回的是File的数组
  1. /**
  2.  * 使用listFiles列出指定目录的全部文件
  3.  * listFiles输出的是完整路径
  4.  * */
  5. import java.io.*;
  6. class hello{
  7.     public static void main(String[] args) {
  8.         String fileName="D:"+File.separator;
  9.         File f=new File(fileName);
  10.         File[] str=f.listFiles();
  11.         for (int i = 0; i < str.length; i++) {
  12.             System.out.println(str[i]);
  13.         }
  14.     }
【运行结果】:
D:\$RECYCLE.BIN
D:\360
D:\360Downloads
D:\360Rec
D:\360SoftMove
D:\Config.Msi
D:\da
D:\Downloads
D:\DriversBackup
D:\eclipse
D:\java web整合开发和项目实战
D:\Lenovo
D:\MSOCache
D:\Program
D:\Program Files
D:\python
D:\RECYGLER.{8F92DA15-A229-A4D5-B5CE-5280C8B89C19}
D:\System Volume Information
D:\Tomcat6
D:\var
D:\vod_cache_data
D:\新建文件夹
通过比较可以指定,使用listFiles更加方便、
 
【案例7】判断一个指定的路径是否为目录
  1. /**
  2.  * 使用isDirectory判断一个指定的路径是否为目录
  3.  * */
  4. import java.io.*;
  5. class hello{
  6.     public static void main(String[] args) {
  7.         String fileName="D:"+File.separator;
  8.         File f=new File(fileName);
  9.         if(f.isDirectory()){
  10.             System.out.println("YES");
  11.         }else{
  12.             System.out.println("NO");
  13.         }
  14.     }
  15. }
【运行结果】:YES
 
【案例8】搜索指定目录的全部内容 
  1. /**
  2.  * 列出指定目录的全部内容
  3.  * */
  4. import java.io.*;
  5. class hello{
  6.     public static void main(String[] args) {
  7.         String fileName="D:"+File.separator;
  8.         File f=new File(fileName);
  9.         print(f);
  10.     }
  11.     public static void print(File f){
  12.         if(f!=null){
  13.             if(f.isDirectory()){
  14.                 File[] fileArray=f.listFiles();
  15.                 if(fileArray!=null){
  16.                     for (int i = 0; i < fileArray.length; i++) {
  17.                         //递归调用
  18.                         print(fileArray[i]);
  19.                     }
  20.                 }
  21.             }
  22.             else{
  23.                 System.out.println(f);
  24.             }
  25.         }
  26.     }
  27. }
【运行结果】:
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\framepages\web4welcome_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.class 
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\help_005fhome_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\home_jsp.java 
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\index_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\login_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\modify_005fuser_005finfo_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\register_005fnotify_jsp.java 
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.class
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\sign_005fup_jsp.java
D:\Tomcat6\work\Catalina\localhost\nevel\org\apache\jsp\transit_jsp.class
……

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值