IO流_FileInputStream讀取資料一次一個位元組陣列
阿新 • • 發佈:2019-02-14
package cn.itcast_02; import java.io.FileInputStream; import java.io.IOException; /* * 一次讀取一個位元組陣列:int read(byte[] b) * 返回其實是實際讀取取的位元組個數。 */ public class FileInputStreamDemo2 { public static void main(String[] args) throws IOException { // 建立位元組輸入流物件 // FileInputStream fis = new FileInputStream("fis2.txt"); FileInputStream fis = new FileInputStream("FileOutputStreamDemo.java"); // 讀取資料 // 定義一個位元組陣列 // 第一次讀取 // byte[] bys = new byte[5]; // int len = fis.read(bys); // System.out.println(len); // System.out.println(new String(bys, 0, len)); // // // 第二次讀取 // len = fis.read(bys); // System.out.println(len); // System.out.println(new String(bys, 0, len)); // // // 第三次讀取 // len = fis.read(bys); // System.out.println(len); // System.out.println(new String(bys, 0, len)); // // // 第四次讀取 // len = fis.read(bys); // System.out.println(len); // System.out.println(new String(bys, 0, len)); // // 程式碼重複了,用迴圈改進 // // 但是我不知道迴圈條件 // len = fis.read(bys); // System.err.println(len); // len = fis.read(bys); // System.err.println(len); // 如果讀取到的實際資料是-1,就說明沒有資料了 // byte[] bys = new byte[115]; // int len = 0; // while ((len = fis.read(bys)) != -1) { // System.out.print(new String(bys, 0, len)); // // System.out.println(new String(bys));//千萬要帶上len的使用 // } // 最終程式碼版 // 陣列的長度一般是1024或者1024的整倍數 byte[] bys = new byte[1024]; int len = 0; while ((len = fis.read(bys)) != -1) { System.out.print(new String(bys, 0, len)); } // 釋放資源 fis.close(); } }