首先:這兩個類都是抽象類別,要通過子類對象來執行個體化。
其次:這兩個類都是位元組操作類,需要使用byte數組操作資料。必然會有數組大小的限制。
例1:向檔案中寫一個字串
import java.io.*;public class ooDemo04 { public static void main(String[] args)throws Exception{ //1、表示要操作gzg.txt檔案 File f = new File("e://gzg.txt"); //2、通過子類執行個體化 //使用FileOutputStream類 OutputStream out = null; out = new FileOutputStream(f); String str = "HELLO GZG...你好"; String str1 = str.toLowerCase(); byte[] b = str1.getBytes(); //3、將byte數組寫到檔案之中 out.write(b); //4.關閉資料流 out.close(); }}
例2:從檔案中讀取資料。
import java.io.*; public class ooDemo05 { public static void main(String[] args){ //1.構建一個子類對象File用來找到檔案 File f = new File("E://gzg.txt"); //2.並通過File來執行個體化父類InputStream InputStream in = null; try{ in = new FileInputStream(f); } catch(Exception e){ System.out.println("開啟檔案操作失敗!!!"); } //3.從檔案中讀取資料 //使用父類中int read(byte[] b)方法向byte數組中讀取資料,傳回值是讀取的位元組個數 intlen = 0; byte[] b =newbyte[1024]; try { len = in.read(b); } catch (IOException e) { e.printStackTrace(); } //將讀取到byte數組中的資料轉化為String類型,然後列印輸出 String str = new String(b); System.out.println("讀取到的內容是:" + str); //4.關閉輸入資料流 try { in.close(); } catch (IOException e) { e.printStackTrace(); } }}