JAVA基础-File(1)

来源:互联网 发布:淘宝满减活动怎么设置 编辑:程序博客网 时间:2024/06/14 13:59

1.创建Files路径:

File:文件和目录路径名的抽象表示形式。
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

file常用方法:
创建功能: boolean createNewFile()
boolean mkdir() 创建此抽象路径名指定的目录,创建文件夹
boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
删除功能:boolean delete()
获取功能:boolean exists()
判断功能: File getAbsoluteFile()
绝对路径:固定不可改变的路径,一盘符开头
相对路径: 相对某个参照物,不能以盘符开头,默认为项目路径。
源码分析:

    @Test    public  void Method() {        File file = new File("a.txt");        System.out.println(file.exists()); //true        System.out.println(file.isAbsolute());  //false        System.out.println(file.isDirectory());//false        System.out.println(file.isFile());//true    }
    @Test    public  void method02() {        File file = new File("a.txt");        System.out.println(file.getAbsoluteFile());        System.out.println(file.getAbsolutePath());        //C:\Users\workspace\Scanner\a.txt        //C:\Users\workspace\Scanner\a.txt        System.out.println(file.getParent());//null        System.out.println(file.getParentFile());//null        System.out.println(file.lastModified());//0        Date date = new Date(1495027122528L);        System.out.println(date.toLocaleString());        //2017-5-17 21:18:42        File file2 = new File("a_rename.txt");        System.out.println(file.renameTo(file2));//true    }

查看文件夹下有多少文件

@Test    public  void method01() throws Exception{        File file = new File("b_test");        System.out.println(file.createNewFile());        File file2 = new File("C:\\JavaTest");        File file3 = new File("c.txt");//      只有指向文件夹的File对象才可以调用这个方法。        File[] files = file2.listFiles();        for (File file4 : files) {            System.out.println(file4.getName());        }    }

2. 输出指定目录下所有的JAva文件名

public class FileDemo4 {     public static void main(String[] args) {         File file = new File("C:\\Eclipse");        method(file);    }//   包含子目录     public static void method(File file) {        if (file.isDirectory()) {            File[] files = file.listFiles();            for (File file2 : files) {                if (file2.isFile()) {                    if (file2.getName().endsWith(".java")) {                        System.out.println(file2.getName());                    }                    else if (file2.isDirectory()) {//                      是一个目录对象                        method(file);                    }                }            }        }    }//   不包含子目录     public static void method2(File file) {            if (file.isDirectory()) {                System.out.println(file.getAbsolutePath());                File[] files = file.listFiles();                for (File file2 : files) {                    if (file2.isFile()) {                        if (file2.getName().endsWith(".java")) {                            System.out.println(file2.getName());                        }                    }                }            }        }}

3.输出流中找不到文件时,会自动创建

//      输出流写一个不存在的文件,不会报错,反而会创建。        FileOutputStream fileOutputStream = new FileOutputStream("C:\\Eclipse\\javaTest.java");

4.复制文件夹,rename并且复制源文件夹下的所有内容

public class CopyFolder {    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub        File src = new File("C:\\Eclipse\\123");        File dest = new File("C:\\Eclipse\\456");//      System.out.println(src.getName() + dest.getName());        copy(src,dest);    }    public static void copy(File src,File dest) throws IOException {//      判断目的文件夹是否存在        if (!dest.exists()) {            dest.mkdir();        }//      在456里面创建出一个123文件夹            File newfile = new File(dest,src.getName());            newfile.mkdir();            File[] arr = src.listFiles();//          获取文件夹下的所有子文件//          copy(newfile, arr);            for (File file : arr) {                if (file.isFile()) {                    copyfile(newfile, file);                }else{                    copy(file, newfile);                }            }    }    private static void copyfile(File newfile, File file) throws FileNotFoundException, IOException {            FileInputStream fileInputStream = new FileInputStream(file);            FileOutputStream fileOutputStream = new FileOutputStream(new File(newfile,file.getName()),true);// 创建一个向具有指定 name 的文件中写入数据的输出文件流。            int i;            while ((i = fileInputStream.read())!= -1) {                fileOutputStream.write(i);            }            fileInputStream.close();            fileOutputStream.close();    }}

5.文件复制

/*
* 二进制文件只能用字节流。
* 文本文件的复制可以使用字节流,也可以使用字节流
* 图片只能使用字节流。
*
* */

    public static void main(String[] args) throws IOException {        // TODO Auto-generated method stub//      创建字节输入流//      FileReader fileReader = new FileReader("javaTest.jpg");//      创建字节输出流//      FileWriter filterWriter = new FileWriter("C:\\Eclipse");        FileInputStream fileInputStream = new FileInputStream("javaTest.jpg");        FileOutputStream fileOutputStream = new FileOutputStream("C:\\Eclipse\\haha.jpg");        int len;        byte[] bytes = new byte[1024];        while ((len = fileInputStream.read(bytes)) != -1) {            fileOutputStream.write(bytes, 0, len);        }        //      释放资源        fileInputStream.close();        fileOutputStream.close();    }
原创粉丝点击