Java IO中的FileReader 和 FileWriter讀寫文件,和建立多級文件夾

Java代碼   收藏代碼
  1. package pack.java.io;  
  2.   
  3. import java.io.BufferedInputStream;  
  4. import java.io.File;  
  5. import java.io.FileInputStream;  
  6. import java.io.FileNotFoundException;  
  7. import java.io.FileOutputStream;  
  8. import java.io.FileReader;  
  9. import java.io.FileWriter;  
  10. import java.io.IOException;  
  11. import java.io.InputStream;  
  12.   
  13. import sun.misc.Resource;  
  14.   
  15. public class CreateFileDemo {  
  16.     /** 
  17.      * 測試主方法; 
  18.      * @param args 
  19.      */  
  20.     public static void main(String[] args) {  
  21.         //System.getProperty("user.dir")是取得當前項目的根目錄;而後,在拼出文件所在的目錄;  
  22.         String file=System.getProperty("user.dir")+"\\src"+File.separator+"\\myFile.txt";  
  23.         File writeFile=new File("C:\\iodemo\\File\\");  
  24.         System.out.println("得到父級目錄:"+writeFile.getParent());  
  25.           
  26.         //若是目錄不存在,則建立目錄;  
  27.         if(!writeFile.exists()){  
  28.             //mkdirs是建立多級目錄,而mkdir是建立單級目錄;  
  29.             writeFile.mkdirs();  
  30.         }  
  31.         FileReader fileReader  = null;  
  32.         FileWriter fileWrite  = null;  
  33.         try {  
  34.             //fileInputStream=new FileInputStream(file);  
  35.             //fileOutputStream = new FileOutputStream(new File(writeFile.getPath()+"\\writeFile.txt"));  
  36.             fileReader = new FileReader(file);  
  37.             int c=0;  
  38.             try {  
  39.                 fileWrite = new FileWriter(writeFile.getPath()+"\\writeFile.txt");  
  40.                 while ((c=fileReader.read())!=-1) {  
  41.                     //輸出到C:\\iodemo\\File\\test目錄下的writeFile.txt文件中;  
  42.                     fileWrite.write(c);  
  43.                 }  
  44.                 System.out.println("成功輸出文件到:"+writeFile.getPath());  
  45.             } catch (IOException e) {  
  46.                 // TODO Auto-generated catch block  
  47.                 e.printStackTrace();  
  48.             }  
  49.         } catch (FileNotFoundException e) {  
  50.             // TODO Auto-generated catch block  
  51.             e.printStackTrace();  
  52.         }finally{  
  53.                 try {  
  54.                     //如下操做是:關閉輸入流和輸出流;  
  55.                     if(fileReader!=null){  
  56.                         fileReader.close();  
  57.                     }  
  58.                     if(fileWrite!=null){  
  59.                         fileWrite.close();  
  60.                     }  
  61.                 } catch (IOException e) {  
  62.                     // TODO Auto-generated catch block  
  63.                     e.printStackTrace();  
  64.                 }  
  65.         }  
  66.     }  
  67.       
  68. }  

 

 

 FileInputStream 類 
1 ) FileInputStream 類介紹: 
以字節爲單位的流處理。字節序列:二進制數據。與編碼無關,不存在亂碼問題。 
FileInputStream 類的主要方法有: 
Read(), read(byte[] b), read (byte[],int off,int len) ,available(); 

2 ) FileInputStream 類與 FileReader 類的區別: 

兩個類的構造函數的形式和參數都是相同的,參數爲 File 對象或者表示路徑的 String ,它們到底有何區別呢? 
FileInputStream :以字節流方式讀取;
FileReader :把文件轉換爲字符流讀入; 
InputStream提供的是字節流的讀取,而非文本讀取,這是和Reader類的根本區別。用Reader讀取出來的是char數組或者String ,使用InputStream讀取出來的是byte數組。
Reader類及其子類提供的字符流的讀取char,inputStream及其子類提供字節流的讀取byte,因此FileReader類是將文件按字符流的方式讀取,FileInputStream則按字節流的方式讀取文件;java

相關文章
相關標籤/搜索