Java —— 節點流

Alex_McAvoy發表於2018-10-23

【位元組流】

1.FileInputStream 類

FileInputStream 類是 InputStream 類的子類,適用於較簡單的檔案讀取,其方法均是從 InputStream 類繼承並重寫的,建立檔案位元組輸入流常用的構造方法有以下兩種:

  • FileInputStream(String filePath):根據指定檔名稱與路徑,建立例項物件,其中 filePath 為檔案的絕對路徑或相對路徑
  • FileInputStream(File file):使用指定的 File 型別檔案物件建立例項物件,其中 file 為 File 型別的例項物件
/* 
 * 在 D 盤存在 Example.txt 檔案,檔案內容為 Hello World!
 * 建立一個 File 類物件,然後建立檔案位元組輸入流物件 fis
 * 從輸入流中讀取檔案的資訊
 */

File file = new File("D:\\Example.txt");//建立一個File類物件
try{
    System.out.print("The content is:");

    //建立一個FileInputStream類物件
    FileInputStream fis=new FileInputStream(file);
    
    //呼叫FileInputStream類方法來讀取檔案資訊
    int res=fis.read();
    while( res!=-1 ){ //讀取輸入流資料
        System.out.print(res);
        res=fis.read();
    }

    //關閉輸入流
    fis.close();
} catch (IOException e){
    e.printStackTrace();
}

2.FileOutputStream 類

FileOutStream 類是 OutputStream 類的子類,該類屬於節點流,適用於較簡單的檔案寫入,其方法均是從 OutputStream 類繼承並重寫的,建立檔案位元組輸出流常用的構造方法有以下兩種:

  • FileOutStream(String filePath):根據指定檔名稱與路徑,建立例項物件,其中 filePath 為檔案的絕對路徑或相對路徑
  • FileOutStream(File file):使用指定的 File 型別檔案物件建立例項物件,其中 file 為 File 型別的例項物件
/* 
 * 建立一個 File 類物件,首先判斷此配置檔案是否存在
 * 如果不存在,則呼叫方法建立一個檔案,從鍵盤輸入字元存入陣列
 * 建立檔案輸出流,把陣列裡的字元寫入到檔案,最終結果存入 Example.txt 檔案
 */

File file = new File("D:\\Example.txt");//建立一個File類物件
byte bytes[]=new byte[512];
try{
    //判斷檔案是否存在
    if(!file.exists())
        file.createNewFile();

    //建立檔案輸出流
    int b=System.in.read(bytes);

    //建立一個FileOutputStream類物件
    FileOutputStream fos=new FileOutputStream(file,true);
    
    //呼叫FileOutputStream類方法來寫入檔案資訊
    fos.write(bytes,0,b);

    //關閉輸入流
    fos.close();
} catch (IOException e){
    e.printStackTrace();
}

【字元流】

1.FileReader 類

FileReader 類是 Reader 類的子類,其實現了從檔案中讀出字元資料,是檔案字元輸入流,屬於節點流,其方法均是從 Reader 類中繼承的,常用的構造方法有兩種:

  • FileReader(String filePath):該方法根據指定的檔名稱和路徑,建立關聯該檔案的例項物件
  • FileReader(File file):該方法使用 File 型別的檔案物件,建立關聯該檔案的例項物件
/* 
 * 在 D 盤存在 Example.txt 檔案,檔案內容為 Hello World!
 * 從輸入流中讀取檔案的資訊
 */

File file = new File("D:\\Example.txt");//建立一個File類物件
try{
    System.out.print("The content is:");

    //建立一個FileReader類物件
    FileReader fr=new FileReader(file);
    
    //呼叫FileReader類方法來讀取檔案資訊
    int rs=fr.read();
    while( res!=-1 ){ //讀取輸入流資料
        System.out.print(res);
        res=isr.read();
    }

    //關閉輸入流
    fis.close();
} catch (IOException e){
    e.printStackTrace();
}

2.FileWriter 類

FileWriter 類是 Writer 類的子類,實現了將字元資料寫入檔案中,是檔案字元輸出流,其常用方法均是由 Writer 類繼承而來的,其構造方法有以下兩種:

  • FileWriter(String filePath):該方法根據指定的檔名稱和路徑,建立關聯該檔案的例項物件
  • FileWriter(File file):該方法使用 File 型別的檔案物件,建立關聯該檔案的例項物件
/* 
 * 建立一個 File 類物件,首先判斷此配置檔案是否存在
 * 如果不存在,則呼叫方法建立一個檔案
 * 建立檔案輸出流,寫入到檔案,最終結果存入 Example.txt 檔案
 */

File file = new File("D:\\Example.txt");//建立一個File類物件
try{
    //判斷檔案是否存在
    if(!file.exists())
        file.createNewFile();

    //建立一個FileOutputStream類物件
    FileReader fos=new FileReader(file);
    
    //呼叫OutputSteamWriter類方法來寫入檔案資訊
    fos.write();

    //關閉輸入流
    out.close();
} catch (IOException e){
    e.printStackTrace();
}

 

相關文章