java文件操作 之 創建文件夾路徑和新文件


一:問題

(1)java 的如果文件夾路徑不存在,先創建;

(2)如果文件名 的文件不存在,先創建再讀寫;存在的話直接追加寫,關鍵字true表示追加

(3)File myPath = new File(toFilePath);
   if ( !myPath.exists()){//若此目錄不存在,則創建之// 這個東西只能簡歷一級文件夾,兩級是無法建立的。。。。。
           myPath.mkdir();
           System.out.println("創建文件夾路徑為:"+ toFilePath);
}
         如上代碼只能創建一級目錄,不能夠創建二級目錄;即只能創建當前級的目錄,如果上一級目錄還不存在,則創建失敗;當然可以通過遞歸創建來解決這個問題

File myPath = new File(toFilePath); 僅僅是把路徑傳遞給了File.java類的私有屬性,請看源代碼,並沒有打開文件,所以不會拋出FileNotFoundException

(4) //寫入文件名處理

                String fileN = toFilePath + "\\" + fileName;
            BufferedWriter writer = new BufferedWriter(new FileWriter(new File(fileN)));

       與下面的代碼對比

File file=new File(originalPath);
                if(file.isFile() && file.exists()){ //判斷文件是否存在
                InputStreamReader read = new InputStreamReader(
                new FileInputStream(file),encoding);//考慮到編碼格式
                BufferedReader bufferedReader = new BufferedReader(read);

}

其實,FileWriter 是包裝了(調用了) FileOutputStream()函數 源代碼如下:所以兩者有些類似的,只是stream可以過濾編碼罷了

public FileWriter(File file) throws IOException {
        super(new FileOutputStream(file));
    }

二:代碼實現

  1. package edu.tju.cs;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileWriter;  
  6. import java.io.IOException;  
  7. import java.io.RandomAccessFile;  
  8.   
  9.   
  10. public class AllTest {  
  11.       
  12.     /*public static void main(String[] args){ 
  13.         System.out.println("****\\\\"); 
  14.         String str = "a\\b\\b\\c.csv|aaaaa"; 
  15.         String[] chars = str.split("\\\\"); 
  16.         String[] fileName = chars[3].split("\\.");// u002e 
  17.         String[] tmp = chars[3].split("\\u007c");//  \\u007c 
  18.         for(String cha:chars){ 
  19.             System.out.println(cha); 
  20.         } 
  21.         System.out.println(fileName[0]); 
  22.         System.out.println(tmp[1]); 
  23.     }*/  
  24.       
  25.      public static void main(String args[])  
  26.      {  
  27.             StringBuffer fileBuf=new StringBuffer();  
  28.             String filePar = "d:\\test";// 文件夾路徑  
  29.             File myPath = new File( filePar );  
  30.             if ( !myPath.exists()){//若此目錄不存在,則創建之  
  31.                 myPath.mkdir();  
  32.                 System.out.println("創建文件夾路徑為:"+ filePar);  
  33.             }  
  34.             // 文件夾路徑存在的情況下  
  35.             String filename = "test.txt";// 文件名  
  36.             try {  
  37.                 FileWriter fw = new FileWriter(filePar + "\\" + filename,true);// filePar + "\\" + filename,true  
  38.                 // FileWriter 就是牛,如果文件名 的文件不存在,先創建再讀寫;存在的話直接追加寫,關鍵字true表示追加  
  39.                 String originalLine = "aaaaaaaaaa" + "\n";//   
  40.                 System.out.println("*** "+ originalLine);  
  41.                 fw.write(originalLine);  
  42.                 // 關閉寫文件,每次僅僅寫一行數據,因為一個讀文件中僅僅一個唯一的od  
  43.                 fw.close();  
  44.             } catch (IOException e) {  
  45.                 // TODO Auto-generated catch block  
  46.                 e.printStackTrace();  
  47.             }  
  48.       }  
  49. }  


總之, FileWriter 就是牛,如果文件名 的文件不存在,先創建再讀寫;存在的話直接追加寫,關鍵字true表示追加   但是他只能一行一行的讀寫,不如代緩沖的讀寫效率高

java多種方式讀文件,追加文件內容,對文件的各種操作請見:java多種方式讀文件,追加文件內容,對文件的各種操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM