• 使用文件流创建File文件和目录以及其他的一些操作


        我们创建文件时可以直接通过File f=new File(path)来创建一个文件对象,然后再通过 f.createNewFile() 就创建出来了一个文件。比如设置 path 为 C:UserswclDesktopdemo.txt  就可以在桌面上创建一个 demo.txt 文件。注意这里要try/catch。

           try {
                String path = "C://Users/wcl/Desktop/demo.txt";
                File f = new File(path);
                f.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

      如果你的path里还包含了未创建的文件夹目录,比如 path 为 C:\UserswclDesktopdatademo.txt 则会报错,提示‘’系统找不到指定的路径‘’。,因为这里的 data 文件夹不存在。

    这时候我们可以先创建文件夹再创建文件,创建文件夹可以使用f.mkdir()方法,如果你想创建一个多级文件夹,则可以用f.mkdirs()方法创建。

            try {
                String path = "C://Users/wcl/Desktop/data/demo.txt";
                File f = new File(path);
                if(!f.exists()){
                    f.mkdirs();
                }
                f.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 

    我这里写的path仍然为之前的path,执行上述的代码之后,我们会在桌面上创建出来一个data文件夹,打开文件夹后,会看到里面还有一个名为demo.txt的文件夹。

    这不是我们想要的结果,因为我们想要的是data文件夹里有的是demo.txt文件,那么我们可以结合f.mkdirs()和f.createNewFile()两个方法来创建:

        try {
               String path = "C://Users/wcl/Desktop/data/demo.txt";
               File f = new File(path);
               if(!f.getParentFile().exists())
                    f.getParentFile().mkdirs();if( !f.exists() ){
                        f.createNewFile();
                    }
            } catch (IOException e) {
                e.printStackTrace();
            }

              上面的代码先是通过f.getParentFile() 来获取到上一级的文件夹,也就是data文件夹,通过f.getParentFile().exists()来判断文件夹是否存在,如果不存在则创建 data 目录(文件夹),同时创建 demo.txt 文件。如果目录(文件夹)已存在,则进行第二次判断,判断目录文件中是否已存在 demo.txt 文件,如果存在则不操作,如果不存在就创建。这样目录和文件夹就都创建好了。

    附:

    1.创建临时文件

    File f = File.createTempFile(“text”, "txt");

    createTempFile()里面传入两个参数,第一个为临时文件的前缀,第二个为后缀。

    2.遍历文件

    String path="...";
            File f=new File(path);
            File []files = f.listFiles();
            for(File file:files){
                System.out.println(file.getAbsolutePath());
            }

    3.关于路径分隔符:

    因为不同系统的路径分隔符不一样,故可以在java中使用 File.separator 作为目录分隔符 

    比如之前的 path 路径就可以写成

    String path = "C:"+File.separator+"Users"+File.separator+"wcl"+File.separator+"Desktop"+File.separator+"data"+File.separator+"demo.txt";
  • 相关阅读:
    解决ie下vue列表数据不能即时刷新的问题
    redis的几个知识点
    oracle查找某个字符在字符串中的个数的技巧
    程序员必看书籍
    eclipse彻底去除validation(彻底解决编辑js文件的卡顿问题)
    eclipse强行停止buliding workspace
    [Ljava.lang.String是一个字符串数组的字节码表示
    javascript合并两个数组
    css隐藏页面元素的方法
    配置IIS使用Python
  • 原文地址:https://www.cnblogs.com/weimore/p/7249618.html
Copyright © 2020-2023  润新知