美文网首页
四、Java高级--5、IO包概述及两个文件系统处理的例子

四、Java高级--5、IO包概述及两个文件系统处理的例子

作者: cybeyond | 来源:发表于2018-05-25 14:45 被阅读0次

文件系统操作在java.io.File类中,下面演示几个常用的文件操作:

  • 1、显示一个文件的信息
package javastudy;
import java.io.File;
import java.util.Calendar;

public class Test14 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //两种定义文件示例的方法
    //  File file=new  File("F:\\Java\\JavaTools\\jdk-8u65-windows-x64.exe"); //使用“/”进行转义
        File file=new File("F:\\Java\\JavaTools", "jdk-8u65-windows-x64.exe");
        StringBuilder str=new StringBuilder();
        Calendar ca=Calendar.getInstance();//使用此方法将时间格式转换,易于查看
        ca.setTimeInMillis(file.lastModified());
        str.append("文件的最后修改日期:"+ca.getTime().toLocaleString());//存在横线代表此方法已过时
        str.append("\n");
        str.append("文件的大小:"+file.length());
        str.append("\n");
        if(file.isDirectory()){
            str.append("类型:目录");
        }else{
            str.append("类型:文件");
        }
        System.out.println(str.toString());
    }
}
执行结果
  • 2、显示某个盘符根目录下的所有文件和目录,并对文件和目录做出区分
package javastudy;

import java.io.File;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file=new File("e:\\");
        File[] files=file.listFiles(); //定义一个数组files来存放文件名
        for(File f:files){  //将files中的每一个文件交给f来处理
            if(f.isDirectory()){
                System.out.print("O");
            }else{
                System.out.print("X");
            }
            System.out.println("\t" + f.getPath());
        }
    }
}
执行结果
  • 找出某个盘符下所有扩展名为txt的文件,并显示出来(可以使用递归算法:函数自己调用自己)
package javastudy;

import java.io.File;

import com.sun.webkit.ContextMenu.ShowContext;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String path="e:\\";
    Show(path);
    }
    static void Show(String path){
        File f=new File(path); //定义一个对象f
        File[] files=f.listFiles();//定义数组,将path路径定义的对象f列表文件,交由数据files存放
        for (File file:files){
            if(file.isFile()){
                if(file.getPath().toUpperCase().endsWith("TXT")){
                    System.out.println(file.getPath());
                }
                
            }else{ //如果不是文件,还是一个目录,那么要递归此目录
                Show(file.getPath());//是目录,在调用自己,直至遍历出所有文件
            }
        }
    
    }
}

通过执行结果发现,此时会报一个空指针的错误


执行结果

原因是系统自带的文件不能够被访问,因此需要将其去除掉

package javastudy;

import java.io.File;

import com.sun.webkit.ContextMenu.ShowContext;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String path="e:\\";
    Show(path);
    }
    static void Show(String path){
        //System.out.println("当前执行的路径是:"+path+"......");//显示在处理哪个文件夹
        if(path.endsWith("System Volume Information")){
            return;
        }
        File f=new File(path); //定义一个对象f
        File[] files=f.listFiles();//定义数组,将path路径定义的对象f列表文件,交由数据files存放
        for (File file:files){
            if(file.isFile()){
                if(file.getPath().toUpperCase().endsWith("TXT")){
                    System.out.println(file.getPath());
                }
                
            }else{ //如果不是文件,还是一个目录,那么要递归此目录
                Show(file.getPath());//是目录,在调用自己,直至遍历出所有文件
            }
        }
    
    }
}

执行结果中还会报一个空指针错误,原因是因为对是否为空没有做条件判断,即指向的字符对象如果为空值,就会报出空指针错误,但可以根据提示,添加相应的条件


执行结果
package javastudy;

import java.io.File;

import com.sun.webkit.ContextMenu.ShowContext;

public class Test15 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String path="e:\\";
    Show(path);
    }
    static void Show(String path){
        //System.out.println("当前执行的路径是:"+path+"......");//显示在处理哪个文件夹
        if(path.endsWith("System Volume Information")||path.endsWith("~TAAA6E.cab")){
            return;
        }
        File f=new File(path); //定义一个对象f
        File[] files=f.listFiles();//定义数组,将path路径定义的对象f列表文件,交由数据files存放
        for (File file:files){
            if(file.isFile()){
                if(file.getPath().toUpperCase().endsWith("TXT")){
                    System.out.println(file.getPath());
                }
                
            }else{ //如果不是文件,还是一个目录,那么要递归此目录
                Show(file.getPath());//是目录,在调用自己,直至遍历出所有文件
            }
        }
    
    }
}

相关文章

  • 四、Java高级--5、IO包概述及两个文件系统处理的例子

    文件系统操作在java.io.File类中,下面演示几个常用的文件操作: 1、显示一个文件的信息 2、显示某个盘符...

  • Java基础语法_Day15

    一、IO流概述及FileWriter类使用 IO流概述及分类 IO流用来处理设备之间的数据传输Java对数据的操作...

  • java中IO流详细解释

    [TOC] IO流 IO流概述及其分类 IO概念 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的...

  • day20-Java IO流一(基本/拷贝文件)

    20.01_IO流概述及其分类 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于...

  • Topic20(字节流)

    20.01 IO流概述及其分类 概念IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方式Java用于...

  • IO(字节流)

    day20(IO(字节流)) 1_IO流(IO流概述及其分类) 1.概念IO流用来处理设备之间的数据传输Java对...

  • ④Java.IO

    java.IO包是java处理文件目录有关的工具包,对于本节的学习,我们要有以下几个目标 了解java.io包 运...

  • Java基础笔记20

    20.01_IO流(IO流概述及其分类) 1.概念IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方...

  • Java I/O 1.1

    Java IO一般大家常说的IO分为两个部分: 1.java.io包中堵塞型IO(BIO);2.java.nio包...

  • DirectByteBuffer解析和文件IO详解

    java.nio 包里,是java用于处理IO的新的API,它使用channel、select等模型,重新对IO操...

网友评论

      本文标题:四、Java高级--5、IO包概述及两个文件系统处理的例子

      本文链接:https://www.haomeiwen.com/subject/gaqhjftx.html