JavaI/O:File类的常用方法

File类是io包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操作文件,可以通过调用File类中的方法,实现创建、删除、重命名文件等。File类的对象主要用来获取文件本身的一些信息,如文件所在目录、文件的长度、文件读写权限等。数据流可以将数据写入到文件中,而文件也是数据流最常用的数据媒体。

Java File类的功能非常强大,利用java基本上可以对文件进行所有操作。文本将对Java File 文件操作的类详细的分析,并将File类中的常用方法进行简单介绍。

使用createNewFile()创建文件

File file1 = new File("test1.txt");
        file1.createNewFile();

File类中的mkdir和mkdir的区别

mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹


        File file2 = new File("D:\\cmz\\test2");
        file2.mkdir();
        File file3 = new File("D:\\cmz\\test2\\test3.txt");
        file3.mkdirs();

File.separator方法

在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常。

File中还有几个与separator类似的静态常量,与系统有关,在编程中应尽量使用。

File test = new File("D:");
        String strFile = File.separator+"cmz"+test.separator+"test2"+test.separator+"test4.txt";
        File file4 = new File(test,strFile);
        file4.createNewFile();
        file4.delete();

File.deleteOnExit和File.createTempFile

File.createTempFile是在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称

File.delete无需解释,为直接删除,deleteOnExit解释为:在虚拟机终止时,请求删除此抽象路径名表示的文件或目录

for(int i=0;i<5;i++)
        {
            File f=File.createTempFile("chengshit39",".tmp");

            f.deleteOnExit();
        }
        Thread.sleep(9000);

File.list 和File.lists:

list()方法 : 会返回一个字符数组,将制定路径下的文件或文件夹名字存储到String数组中。因为其返回的是一个String类型的数组,所以它也就只是一个名字而已(后面要讲到的listFiles()及其重载方法则不同,它们返回的是File类型的对象,所以具有其全部的属性和方法)。有以下两种重载方式:

1)、String[]  list()

2)、String[]  list(FilenameFilter filter)

而listFiles()方法返回的是一个File类的引用,它具有类的所有属性和方法,比如:String getName()方法就能够返回该文件的String类型的文件名(名字而已)。

因此,遍历文件夹中所有文件,包括子文件夹中的文件时,必须用listFiles()方法


File file=new File("D:\\cmz\\test2");

        System.out.println("list()方法遍历的结果:");
        String[] strings=file.list();
        for (String string : strings) {
            System.out.println(string);
        }
        System.out.println();

        System.out.println("listFiles()方法遍历的结果:");
        File[] files=file.listFiles();
        for (File file2 : files) {
            System.out.println(file2);
        }

转载于:https://blog.51cto.com/13758648/2301462

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值