[問題] JAVA輸入輸出觀念
今天在學習JAVA的IO, 有點混亂了
整理了一下目前理解狀況如下, 希望先進可以指點一下, 是否有不對的地方
初步印象:
InputStream、OutputStream、Reader、Writer 是四個跟IO有關的抽象CLASS,
每個CLASS各自有多個子類繼承它
InputStream、Reader 都是負責輸入流的; OutputStream、Writer 都是負責輸出流的
除了 InputStream、OutputStream、Reader、Writer, 還有 File 類, 是處理檔案時會用
的...
差別:
InputStream、OutputStream 處理BYTE類型/二進位檔案/8位元的流
Reader、Writer 處理字元串流/Character Stream/16位元的流
使用方式:
使用前要 import java.io.
進行輸入輸出前, 要先取得 InputStream(輸入來源) 或 OutputStream(輸出目的)
用完要 .close();
---------------以上是對JAVA IO的初步了解, 不知有無誤解------------------------
-------------------------以下是問題------------------------------------
看完講義, 要來寫練習時, 發現包來包去的寫法, 讓人好混亂啊 @@
例如這段 BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(System.out));
BufferedWriter、OutputStreamWriter 不都是繼承 Writer 的子類嗎? 為什麼 Reader裡
還要再用另一個 Reader 呢?
去網上看了些說明, 整理如下...
InputStreamReader、OutputStreamWriter的引數為Input、Output的檔名
InputStreamReader在讀取位元組資料後,可以將它轉換成字元資料;OuputStreamWriter
是將字元轉換成位元組資料。
是InputStream到Reader、OutputStream到Writer的橋樑。
所以說, InputStreamReader、OutputStreamWrite 是必須的囉, 要有它們才能轉成
BufferedReader可讀的, 把BufferedWriter輸出的東西轉成位元資料存入檔案
是醬子說嗎?
另外,還有 BufferedWriter output = new BufferedWriter(new FileWriter(file));
BufferedWriter bw = new BufferedWriter (new FileWriter(“test.txt”));
這裡用FileWriter()是因為引入的是一個檔案嗎? 可以改成用
OutputStreamWriter(file)嗎?
也有看到醬子的: BufferedReader br = new BufferedReader(new InputStreamReader(new
FileInputStream("ming.txt"))); 怎麼這麼多層啊? Orz
總之, 是不是, BufferedWriter 或 BufferedReader 在使用時, 都必須有個中介才行呢?
另外, 一定要跟 try catch 一起用嗎
它是註定會有EXCEPTION嗎, 還是只是要以防找不到檔的時后?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 134.2.251.20
※ 編輯: marketcos 來自: 134.2.251.20 (01/23 04:18)
推
01/23 04:36, , 1F
01/23 04:36, 1F
推
01/23 11:43, , 2F
01/23 11:43, 2F
→
01/24 00:41, , 3F
01/24 00:41, 3F
推
02/12 20:44, , 4F
02/12 20:44, 4F
java 近期熱門文章
PTT數位生活區 即時熱門文章