1. 程式人生 > >使用文件流創建File文件和目錄以及其他的一些操作

使用文件流創建File文件和目錄以及其他的一些操作

為我 data new cnblogs exist exception () cat 判斷

我們創建文件時可以直接通過File f=new File(path)來創建一個文件對象,然後再通過 f.createNewFile() 就創建出來了一個文件。比如設置 path 為 C:\Users\wcl\Desktop\demo.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:\\Users\wcl\Desktop\data\demo.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";

使用文件流創建File文件和目錄以及其他的一些操作