
- Java.io 包中的類
- Java.io - 首頁
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- Java.io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io 包額外內容
- Java.io - 介面
- Java.io - 異常
- Java.io 包有用資源
- Java.io - 討論

Java.io 包教程
Java - java.io 包
java.io包是Java SDK的標準包。它包含用於透過資料流進行系統輸入和輸出、序列化以及檔案系統的類。此包非常有用,因為它提供流來處理來自各種來源的輸入,例如鍵盤、檔案系統、網路等。類似地,此包包含用於寫入各種來源的流類。本參考將引導您瞭解java.io包中提供的簡單而實用的方法。
匯入 java.io 包
作為Java的內建包,我們不需要下載任何外部庫即可使用java.io包及其所有類,可以使用以下語法匯入:
import java.io.*;
在這裡,我們使用*運算子匯入java.io包中的所有類,現在程式中可以使用任何類。對於特定類,例如InputStream,我們可以使用以下語法匯入類:
import java.io.InputStream;
為什麼在Java程式中使用java.io包
Java.io包中的類包含流/讀取器/寫入器類,可以使用統一模式讀取和寫入各種來源。以下列表顯示了java.io包中部分類別的類。
輸入流 - 像ByteArrayInputStream、FileInputStream等輸入流類有助於從諸如位元組陣列、檔案之類的來源讀取資料作為資料流,我們也可以使用緩衝來讀取完整的內容。
輸出流 - 類似地,我們有OutputStream類,例如ByteArrayOutputStream、FileOutputStream等,可用於寫入幾乎任何型別的目標。
錯誤流 - 錯誤流類似於OutputStream,用於將錯誤寫入源。
讀取器 - 讀取器類是面向字元的,專門用於讀取基於文字的內容。
寫入器 - 同樣,寫入器類專門用於將基於文字的內容寫入任何目標。
java.io包中的重要類
以下是java.io包中重要類的列表:
- BufferedInputStream - BufferedInputStream類為另一個輸入流新增功能,即緩衝輸入和支援mark和reset方法的能力。
- BufferedOutputStream - BufferedOutputStream類實現緩衝輸出流。透過設定這樣的輸出流,應用程式可以將位元組寫入底層輸出流,而無需為寫入的每個位元組都必須呼叫底層系統。
- BufferedReader - BufferedReader類從字元輸入流讀取文字,緩衝字元以便高效地讀取字元、陣列和行。
- BufferedWriter - BufferedWriter類將文字寫入字元輸出流,緩衝字元以便高效地寫入單個字元、陣列和字串。
- ByteArrayInputStream - ByteArrayInputStream類包含一個內部緩衝區,其中包含可以從流中讀取的位元組。內部計數器跟蹤read方法要提供的下一個位元組。
- ByteArrayOutputStream - ByteArrayOutputStream類實現輸出流,其中資料寫入位元組陣列。緩衝區會隨著向其寫入資料而自動增長。
- CharArrayReader - CharArrayReader類實現字元緩衝區,可用作字元輸入流。
- CharArrayWriter - CharArrayWriter類實現字元緩衝區,可用作Writer。緩衝區會隨著向流中寫入資料而自動增長。
- Console - Console類提供方法來訪問與當前Java虛擬機器關聯的基於字元的控制檯裝置(如果有)。
- DataInputStream - DataInputStream類允許應用程式以與機器無關的方式從底層輸入流讀取原始Java資料型別。
- DataOutputStream - DataOutputStream類允許應用程式以可移植的方式將原始Java資料型別寫入輸出流。然後,應用程式可以使用資料輸入流讀取回資料。
- File - Java File類以抽象方式表示檔案和目錄路徑名。此類用於建立檔案和目錄、檔案搜尋、檔案刪除等。File物件表示磁碟上的實際檔案/目錄。
- FileDescriptor - FileDescriptor類例項充當對底層特定於機器的結構的不透明控制代碼,該結構表示開啟的檔案、開啟的套接字或其他位元組源或接收器。
- FileInputStream - FileInputStream類從檔案系統中的檔案獲取輸入位元組。可用的檔案取決於主機環境。
- FileOutputStream - FileOutputStream類是用於將資料寫入File或FileDescriptor的輸出流。
- FilePermission - FilePermission類表示對檔案或目錄的訪問許可權。它由路徑名和對該路徑名有效的操作集組成。
- FileReader - FileReader類是用於讀取字元檔案的便捷類。
- FileWriter - FileWriter類是用於寫入字元檔案的便捷類。
- FilterInputStream - FilterInputStream類包含其他輸入流,它將其用作其基本資料來源,可能在此過程中轉換資料或提供其他功能。
- FilterOutputStream - FilterOutputStream類是所有過濾輸出流類的超類。
- FilterReader - FilterReader類用於讀取過濾的字元流。
- FilterWriter - FilterWriter類用於寫入過濾的字元流。
- InputStream - InputStream類是所有表示位元組輸入流的類的超類。需要定義InputStream子類的應用程式必須始終提供返回下一個輸入位元組的方法。
- InputStreamReader - InputStreamReader類是位元組流到字元流的橋樑。它讀取位元組並使用指定的字元集將其解碼為字元。
- LineNumberInputStream - LineNumberInputStream類是一個輸入流過濾器,它提供了跟蹤當前行號的附加功能。一行是位元組序列,以回車符 ('\r')、換行符 ('\n') 或回車符後立即跟換行符結尾。
- LineNumberReader - LineNumberReader類是一個緩衝字元輸入流,它跟蹤行號。一行被認為以換行符 ('\n')、回車符 ('\r') 或回車符後立即跟換行符中的任何一個結束。
- ObjectInputStream - ObjectInputStream類反序列化以前使用ObjectOutputStream寫入的原始資料和物件。
- ObjectInputStream.GetField - ObjectInputStream.GetField類提供對從輸入流讀取的持久欄位的訪問。
- ObjectOutputStream - ObjectOutputStream類將原始資料型別和Java物件的圖形寫入OutputStream。可以使用ObjectInputStream讀取(重建)這些物件。
- Java.io - ObjectOutputStream.PutField - ObjectOutputStream.PutField類提供對要寫入ObjectOutput的持久欄位的程式設計訪問。
- ObjectStreamClass −ObjectStreamClass 類是序列化的類描述符。它包含類的名稱和 serialVersionUID。可以使用 lookup 方法查詢/建立在此 Java 虛擬機器中載入的特定類的 ObjectStreamClass。
- ObjectStreamField −ObjectStreamField 類是對可序列化類中可序列化欄位的描述。ObjectStreamField 陣列用於宣告類的可序列化欄位。
- OutputStream −OutputStream 類是所有表示位元組輸出流的類的超類。輸出流接受輸出位元組並將它們傳送到某個接收器。需要定義 OutputStream 子類的應用程式必須至少提供一個寫入一個輸出位元組的方法。
- OutputStreamWriter −OutputStreamWriter 類是字元流到位元組流的橋樑。寫入其中的字元使用指定的字元集編碼為位元組。
- PipedInputStream −PipedInputStream 類是一個管道輸入流,可以連線到管道輸出流,然後管道輸入流提供寫入管道輸出流的任何資料位元組。
- PipedOutputStream −PipedOutputStream 類是一個管道輸出流,可以連線到管道輸入流以建立通訊管道。
- PipedReader −PipedReader 類是管道字元輸入流。
- PipedWriter −PipedWriter 類是管道字元輸出流。
- PrintStream −PrintStream 類向另一個輸出流新增功能,即方便地列印各種資料值的表示形式的能力。
- PrintWriter −PrintWriter 類將物件的格式化表示形式列印到文字輸出流。
- PushbackInputStream −PushbackInputStream 類向另一個輸入流新增功能,即“回推”或“取消讀取”一個位元組的能力。
- PushbackReader −PushbackReader 類是一個字元流讀取器,允許將字元回推到流中。
- RandomAccessFile −RandomAccessFile 類檔案類似於儲存在檔案系統中的大型位元組陣列。此類的例項同時支援對隨機訪問檔案的讀取和寫入。
- Reader −Reader 類是用於讀取字元流的抽象類。
- SequenceInputStream −SequenceInputStream 類表示其他輸入流的邏輯串聯。它從一個有序的輸入流集合開始,從第一個流讀取直到到達檔案結尾,然後從第二個流讀取,依此類推,直到到達最後一個包含的輸入流的檔案結尾。
- SerializablePermission −SerializablePermission 類用於可序列化許可權。SerializablePermission 包含一個名稱(也稱為“目標名稱”),但不包含操作列表;您要麼擁有指定的許可權,要麼沒有。目標名稱是可序列化許可權的名稱。
- StreamTokenizer −StreamTokenizer 類獲取輸入流並將其解析為“標記”,允許一次讀取一個標記。流標記器可以識別識別符號、數字、帶引號的字串和各種註釋樣式。
- StringBufferInputStream −StringBufferInputStream 類允許應用程式建立一個輸入流,其中讀取的位元組由字串的內容提供。應用程式還可以使用 ByteArrayInputStream 從位元組陣列讀取位元組。此類僅使用字串中每個字元的低八位。此類已被 Oracle 棄用,不應再使用。
- StringReader −StringReader 類是一個字元流,其源是字串。
- StringWriter −StringWriter 類是一個字元流,它將其輸出收集到一個字串緩衝區中,然後可以使用該緩衝區構造一個字串。關閉 StringWriter 沒有效果。在流關閉後,可以呼叫此類中的方法,而不會生成 IOException。
- Writer −Writer 類是用於寫入字元流的抽象類。
java.io 包的示例
練習以下示例以學習 java.io 包類的概念和用法。
java.io.ByteArrayInputStream 示例
以下程式說明了 ByteArrayInputStream 支援的幾種方法 −
package com.tutorialspoint; import java.io.ByteArrayInputStream; import java.io.IOException; public class ByteStreamTest { public static void main(String[] args) throws IOException { byte[] buf = {65, 66, 67, 68, 69}; ByteArrayInputStream bais = null; try { // create new byte array input stream bais = new ByteArrayInputStream(buf); int b =0; // read till the end of the stream while((b = bais.read())!=-1) { // convert byte to character char c = (char)b; // print System.out.println("byte :"+b+"; char : "+ c); } System.out.print(bais.read()+" Reached the end"); } catch(Exception e) { // if I/O error occurs e.printStackTrace(); } finally { if(bais!=null) bais.close(); } } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果 −
byte :65; char : A byte :66; char : B byte :67; char : C byte :68; char : D byte :69; char : E -1 Reached the end
java.io.ByteArrayOutputStream 示例
以下程式說明了 ByteArrayOutputStream 支援的幾種方法 −
package com.tutorialspoint; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; public class BufferedOutputStreamDemo { public static void main(String[] args) throws Exception { ByteArrayOutputStream baos = null; BufferedOutputStream bos = null; try { // create new ByteArrayOutputStream baos = new ByteArrayOutputStream(); // create new BufferedOutputStream with baos bos = new BufferedOutputStream(baos); // assign integer int b = 87; // write to stream bos.write(b); // force the byte to be written to baos bos.flush(); // convert ByteArrayOutputStream to bytes byte[] bytes = baos.toByteArray(); // prints the byte System.out.println(bytes[0]); } catch(IOException e) { // if I/O error occurs. e.printStackTrace(); } finally { // releases any system resources associated with the stream if(baos!=null) baos.close(); if(bos!=null) bos.close(); } } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果 −
87
java.io.PrintWriter 示例
以下程式說明了 PrintWriter 支援的幾種方法 −
package com.tutorialspoint; import java.io.*; public class PrintWriterDemo { public static void main(String[] args) { String s = "Hello world."; try { // create a new writer PrintWriter pw = new PrintWriter(System.out); // print string pw.print(s); // change the line pw.println(); // print another string pw.print("This is an example."); // flush the writer pw.flush(); } catch (Exception ex) { ex.printStackTrace(); } } }
輸出
讓我們編譯並執行上述程式,這將產生以下結果 −
Hello world. This is an example.
何時使用 java.io 包?
每當我們需要執行 I/O 操作時,都可以依賴 java.io 包中提供的 I/O 類。本參考是為初學者編寫的,旨在幫助他們瞭解 Java.io 包中所有方法的基本功能。
先決條件
在開始練習本參考中提供的各種型別的示例之前,我假設您已經瞭解基本的 Java 程式設計。