java IO流(一)

在学习IO流之前,先学习 File类。我们要实现IO的操作,就必须知道硬盘上文件的表现形式。而java就提供了一个File类供我们使用。

File:文件或目录(文件夹)路径名的抽象表示形式。

构造方法:

File(String pathName) : 根据一个路径得到File对象

File(String parent,String child) :根据一个目录和一个子文件/目录  得到File对象

File(File parent,String child) :根据一个父File对象 和一个子文件/目录 得到File对象

一般习惯用第一个构造

创建功能:

public boolean createNewFile() :创建文件,如果存在就不创建

public boolean mkdir():创建文件夹,如果存在就不创建,注意父路径必须要存在才能创建

public boolean mkdirs()创建文件夹,如果不存在就自动创建

  void createFile() throws IOException {

        File file1 = new File("d://demo");
        file1.mkdir();
        File file2 = new File("d://demo/a.txt");
        file2.createNewFile();

        File file3=new File("d://demo/aaa/bbb");
        file3.mkdirs();
    }

删除功能:

public boolean delete()
注意:1、java中删除不走回收站。2、要删除一个文件夹,须要注意该文件夹内不能有文件或文件夹。

    void deleteFile() throws IOException {
        File file=new File("a.txt");//注意如果没有写盘符,默认是在项目路径下
        file.createNewFile();
        //删除file对象
        file.delete();
    }

重命名功能:

public boolean renameTo(File dest)
如果路径名相同,就是改名,如果路径名不同就是剪切并改名

 void renameFile(){
        File file1=new File("aa.jpg");
        File file2=new File("d://bb.jpg");
        file1.renameTo(file2);
    }

判断功能:

public boolean exists()

public boolean isDirectory()

public boolean isFile()

public boolean isHidden()

public boolean canRead()

public boolean canWrite()

获取功能:

public String getAbsolutePath()

public String getPath()

public String getName()

public long lastModified()

public long length()

public String[] list() :获取指定文件夹下的所有文件或文件夹的名称的数组

public File[] listFiles() :获取指定文件夹下所有File对象的数组

 void getFile(){
        File file=new File("d://");
        String[] names=file.list();//获取D盘下所有文件或文件夹的名称数组
        for(String s:names){
            System.out.println(s);
        }
        System.out.println("--------------------");
        File[] files=file.listFiles(); //获取D盘下所有文件或文件夹的File对象数组
        for(File f:files){
            System.out.println(f.getName());
        }
    }

通过过滤器获取:

public String[] list(FilenameFilter filter)  

FilenameFilter是一个接口,通过传入它的实现类,将满足条件的文件名加入到数组中

  void getFileByFilter(){
        File file=new File("d://");
        //获取D盘根目录下所有jpg文件
        String[] names=file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return new File(dir,name).isFile() && name.endsWith(".jpg");
            }
        });
        for(String s:names){
            System.out.println(s);
        }
    }
原文地址:https://www.cnblogs.com/liujufu/p/5034672.html