Java提供了強大的輸入輸出流庫(InputStream,OutputStream)來處理不同種類的數據類型。通過使用這些流,我們可以方便地讀取/寫入任何類型的數據。本文將介紹Java中輸入/輸出流的基本知識和使用。
一、輸入流和輸出流的概念
Java輸入流是用於從源讀取數據的位元組序列。Java的輸出流是用於將位元組以序列的形式寫入到目標中的。Java中的輸入輸出流均是抽象類,不能直接創建它們的對象。要使用它們,需要使用其子類。
InputStream類和OutputStream類是抽象類。Java SDK提供了多個InputStream和OutputStream的子類,針對不同的輸出目的地和輸入源進行數據處理。InputStream和OutputStream類是所有輸入/輸出流類的超類,它們定義了流操作的基本方法。
二、讀取文件
下面的代碼演示了如何使用Java的FileInputStream類從文本文件中讀取數據:
import java.io.*; public class ReadFile { public static void main(String[] args) { try { FileInputStream file = new FileInputStream("example.txt"); int i = 0; while((i = file.read()) != -1) { System.out.print((char)i); } file.close(); } catch(Exception e) { e.printStackTrace(); } } }
以上代碼創建了一個名為「example.txt」的文件,該文件包含要讀取的數據。然後,我們使用FileInputStream對象file來讀取該文件中的數據。while循環將每個位元組從file對象讀取並向控制台寫入字元。
三、寫入文件
下面的代碼演示了如何使用Java的FileOutputStream類向文本文件中寫入數據:
import java.io.*; public class WriteFile { public static void main(String[] args) { try { FileOutputStream file = new FileOutputStream("example.txt"); byte[] b = "Hello World".getBytes(); file.write(b); file.close(); } catch(Exception e) { e.printStackTrace(); } } }
以上代碼創建了一個名為「example.txt」的文件,然後使用FileOutputStream對象file向其中寫入「Hello World」字元串。最後,關閉該文件。
四、將輸入流用作字元串
下面的代碼演示了如何使用Java的BufferedReader類從控制台讀取輸入,並將其作為字元串處理:
import java.io.*; public class ReadString { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter String : "); String s = null; try { s = br.readLine(); } catch(IOException e) { e.printStackTrace(); } System.out.println("You entered : "+s); } }
以上代碼通過創建BufferedReader對象來讀取System.in流(即控制台輸入流)。然後,使用讀取到的字元串並輸出到控制台。
五、將輸出流用作字元串
下面的代碼演示了如何使用Java的OutputStreamWriter類向輸出流中寫入字元串:
import java.io.*; public class WriteString { public static void main(String[] args) { OutputStreamWriter out = new OutputStreamWriter(System.out); try { out.write("Hello World"); out.flush(); } catch(IOException e) { e.printStackTrace(); } } }
以上代碼創建OutputStreamWriter對象out來向System.out流中寫入字元。然後使用write()方法向out對象寫入字元串,並在使用flush()方法刷新流時輸出到控制台。flush()方法確保所有未寫的數據都被寫完。
六、結語
本文提供了Java輸入輸出流的基礎知識,並展示了如何使用這些流來讀/寫數據。Java輸入/輸出流的核心思想是讀取/寫入位元組。要使用輸入/輸出流,需要使用其子類來操作不同類型的數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247396.html