java - File类

一、作用

1)File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

         对文件和目录本身的操作(刨除内容)

2)File对象可以作为参数传递给流的构造函数。

 

二、常用构造方法

    File f = new File(相对路径/绝对路径);

    File f = new File("parent","child");

1、创建一个文件

//在工作空间目录下创建a.txt的文件
File f = new File("a.txt"); 
f.createNewFile(); 

//在G:\路径下创建一个a.txt的文件.如果已经有的话这不会重新创建
File f = new File("G:\\a.txt"); 
f.createNewFile();

//如果路径写成\\a.txt,会在盘符下创建新的文件
File f = new File("\\a.txt"); 
f.createNewFile();

2、创建一个文件夹

//在工作空间目录下创建a.txt的文件夹
File f = new File("a"); 
f.mkdir(); 

//在G:\路径下创建一个a.txt的文件夹.如果已经有的话这不会重新创建
File f = new File("G:\\a"); 
f.mkdir();

//如果路径写成\\a.txt,会在盘符下创建新的文件夹
File f = new File("\\a"); 
f.mkdir();

//在g盘下创建文件夹a,a 下创建一个b文件夹
File f = new File("G:\\a\\b"); 
f.mkdirs();   //注意mkdirs(),创建多个文件夹

3、new File的区别

File f = new File("a");//此时f是文件夹

File f = new File("parent","child"); //此时f是文件,parent文件夹下的文件

//注意:此时会在盘符根目录下创建文件夹 或文件 d
File f = new File("", "d");
f.createNewFile(); // f.mkdir()

4、list() 方法和 listFile() 方法的区别

f.list();
//返回String[]数组.里面包含了f一级目录下的文件和文件夹名.
//注意: 如果f:\\a\\b.那么b不会包含在数组中

f.listFiles();
//返回File[]数组.里面包含了f一级目录下的文件和文件夹名.
//注意: 如果f:\\a\\b.那么b不会包含在数组中

5、文件名过滤器 FilenameFilter

//在f1的文件夹中过滤出后缀名为 "txt"的文件
String[] s = f1.list(new FilenameFilter() {
            /**
             * dir 需要被过滤的文件夹 name 需要别被过滤的文  件名 .此名是相对路径
             * 如果返回true 则证明是符合条件的文件.会将改文件返回到数组中
             */
            @Override
            public boolean accept(File dir, String name) {
                File f = new File(dir, name);
                if (f.isDirectory()) {
                    return false;
                }
                if (f.getName().endsWith("txt")) {
                    return true;
                }
                return false;
            }
        });

6、文件过滤器 FileFilter

//在f1文件夹中过滤出文件长度大于20M的文件.
  File[] fs = f1.listFiles(new FileFilter() {
            /**
             * pathname 表示要被过滤的文件,注意:不是文件名
             * 返ture 证明是符合条件的文件
             */
            @Override
            public boolean accept(File pathname) {
                if (pathname.length() > 1024 * 1024 * 20) {
                    return true;
                }
                return false;
            }
        });  

 

三、文件一些常用方法

f.delete();         //删除file
f.exists();         //file是否存在
f.getName();        //得到file名字
f.isDirectory();    //file是否是文件夹
f.isFile();         //file是否是文件
f.length();         //file的长度

 

四、文件路径分为两种

(1)绝对路径 G:\\a.txt

(2)相对路径 a.txt. //相对于工作空间的路径( G:\andirodWorkspace\a.txt)

 

五、例子

package com.file;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class FileMethod {

    public static void main(String[] args) throws IOException {
        //创建方法
/*      File file = new File("F:\\a.txt");
        //System.out.println("创建成功了吗?"+file.createNewFile());
        //System.out.println("单级文件夹创建成功了吗?"+file.mkdir());
        //System.out.println("多级文件夹创建成功了吗?"+file.mkdirs());
        //File dest = new File("F:\\电影\\c.txt");
        //System.out.println("重命名成功了吗?"+file.renameTo(dest));
*/
        
/*      //删除方法
        File file = new File("F:\\电影");
        System.out.println("删除成功了吗?"+file.delete());
        file.deleteOnExit();
*/
        
        //判断方法
/*      File file = new File("F:\\a.txt");
        System.out.println("文件或者文件夹存在吗?"+file.exists());
        System.out.println("是一个文件吗?"+file.isFile());
        System.out.println("是一个文件夹吗?"+file.isDirectory());
        System.out.println("是隐藏文件吗?"+file.isHidden());
        System.out.println("此路径是绝对路径名?"+file.isAbsolute());
*/
        
        //获取方法
/*
         File file = new File("f:\\a.txt");
        System.out.println("文件或者文件夹得名称是:"+file.getName());
        System.out.println("绝对路径是:"+file.getPath());
        System.out.println("绝对路径是:"+file.getAbsolutePath());
        System.out.println("文件大小是(以字节为单位):"+file.length());
        System.out.println("父路径是"+file.getParent());
        //使用日期类与日期格式化类进行获取规定的时间
        long  lastmodified= file.lastModified();
        Date data = new Date(lastmodified);
        SimpleDateFormat simpledataformat = new SimpleDateFormat("YY年MM月DD日 HH:mm:ss");
        System.out.println("最后一次修改的时间是:"+simpledataformat.format(data));
*/
        
        //文件或者文件夹的方法

        File[] file = File.listRoots();
        System.out.println("所有的盘符是:");
        for(File item : file){
            System.out.println("\t"+item);
        }
        File filename =new File("F:\\Java workspace\\Java");
        String[] name = filename.list();
        System.out.println("指定文件夹下的文件或者文件夹有:");
        for(String item : name){
            System.out.println("\t"+item);
        }
        File[] f = filename.listFiles();
        System.out.println("获得该路径下的文件或文件夹是:");
        for(File item : f){
            System.out.println("\t"+item.getName());
            }

        }
}

 

posted @ 2021-01-05 10:10  快乐的张小凡  阅读(219)  评论(0编辑  收藏  举报