1. 程式人生 > >萌新學Java之初入門徑八----位元組流和字元流

萌新學Java之初入門徑八----位元組流和字元流

## 位元組流 * 將文字圖片音訊等檔案 轉成位元組 進行資料傳輸 * * * 輸入流 * 輸出流 * * 參照物(程式) * * 程式 —-> 檔案 輸出流 寫檔案 * 檔案 —-> 程式 輸出流 讀檔案 * * * * 所有位元組流的父類 * OutputStream 輸出流 * InputStream 輸入流

1.//建立一個位元組輸出流 寫檔案 //建立流 繫結寫入檔案的路徑 //寫入時 系統會幫你創建出檔案

FileOutputStream fos = new FileOutputStream(“/Users/lanou/Desktop/Test/gorilla.txt”);

    //寫入方法
    //該方法是按ASCII碼寫入檔案
    fos.write(48);
    fos.write(50);
    fos.write(60);
    //利用位元組陣列寫入
    byte[] b = {66,67,68,69};
    fos.write(b);
    //"wanglong" 轉成 位元組陣列寫
    fos.write("wanglong".getBytes());

    //關閉資源
    fos.close();

2.//讀取檔案

FileInputStream fis = new FileInputStream(“/Users/lanou/Desktop/Test/gorilla.txt”); //讀取 //一個位元組一個位元組讀取 按照ASCII碼讀取 int num = fis.read(); System.out.println((char)num); num = fis.read(); System.out.println((char)num); num = fis.read(); System.out.println((char)num); num = fis.read(); System.out.println((char)num); num = fis.read(); System.out.println((char)num); //當檔案讀取完畢時,返回-1 //關閉資源 fis.close();

3.//讀取檔案

  FileInputStream fis = new FileInputStream("/Users/lanou/Desktop/Test/gorilla.txt");
    //利用位元組陣列讀取
    //實際上把讀取的內容放入了陣列中
    //fis.read(b) 方法返回值 是讀取到有效位元組數
    //讀完檔案 返回-1
    //一般填1024或者1024的整數倍
    byte[] b = new byte[2];
    int num = fis.read(b);
    System.out.println(num);

4.//讀取檔案

FileInputStream fis = new FileInputStream(“/Users/lanou/Desktop/Test/gorilla.txt”); //利用陣列 迴圈讀取 byte[] b = new byte[1024];

    //接收有效長度
    int len = 0;

    while ((len = fis.read(b)) != -1) {
        //使用字串的構造方法列印
        System.out.println(new String(b,0,len));
    }

    fis.close();

字元流(讀寫文件)

  • Writer
  • Reader
  • (抽象類 所有字元流的父類)

  • FileWriter

  • FileReader

1.//建立字元輸出流

FileWriter fw = new FileWriter(“/Users/lanou/Desktop/Test/wl.txt”); //寫入檔案 fw.write(65); //重新整理(會將內容 寫入檔案中) fw.flush();

    //字元陣列寫入
    char[] c = {'6','8'};

    fw.write(c);
    fw.flush();
    //字串直接寫入
    //mac 換行 \n
    //win 換行 /r/n
    fw.write("鵝鵝鵝\n曲項向天歌");
    fw.flush();


    //關閉資源
    //關閉前 系統會自動重新整理
    fw.close();

2.//建立字元輸入流

FileReader fr = new FileReader(“/Users/lanou/Desktop/Test/wl.txt”); //讀取檔案 //單個讀取 // int num = 0; // // while ((num = fr.read()) != -1) { // System.out.print((char)num); // } // fr.close();

    //陣列讀取
    char[] b = new char[1024];
    int len = 0;
    while ((len = fr.read(b)) != -1) {
        System.out.println(new String(b,0,len));
    }