Java是一門可以進行文件讀寫操作的編程語言,而Java的輸入輸出流就是這樣的一個文件讀寫系統。本文將介紹Java輸入輸出流的基礎概念、輸入流和輸出流的區別、以及常用的輸入輸出類。
一、基礎概念
輸入流和輸出流通常表示程序與外部資源(文件、網絡連接等)的數據輸入輸出方式。Java I/O流是與平台無關的,並且Java API提供了標準I/O,因此可以使用與特定操作系統無關的代碼進行I/O操作,而且不需要手動釋放資源。
Java中有兩種類型的I/O流:字節流和字符流。I/O流中,字節流用於讀取和寫入原始8位字節,而字符流用於讀取和寫入16位Unicode字符。
二、輸入流和輸出流的區別
Java輸入流和輸出流的最大區別在於方向。輸入流是讀取程序輸入的數據,然後將其寫入內存或硬盤,它們從外部讀取數據並將其傳輸到內部程序。而輸出流是從內部程序讀取數據,然後傳輸到外部環境,即將程序產生的數據發送到外部環境。
Java中的輸入流和輸出流通常是成對使用的。例如,通過使用一個文件的讀取流,我們可以使用一個文件寫入流將它寫入到另一個位置(或同一位置)。
三、常用輸入輸出類
1. 字節流
ByteStreams提供了用於處理二進制數據的基礎輸入和輸出操作的類。以下是常用的字節流類:
FileInputStream: 用於從文件中讀取數據的字節流。
ByteArrayOutputStream: 用於將數據寫入到與 ByteArrayOutputStream實例關聯的內部緩衝區的輸出流。
BufferedInputStream: 帶緩存的輸入字節流。
BufferedOutputStream: 帶緩存的輸出字節流。
2. 字符流
CharacterStreams 提供了用於讀寫文本數據的基礎輸入和輸出操作的類。以下是常用的字符流類:
FileReader: 用於從文件中讀取字符的字符流。
FileWriter: 用於將字符寫入文件的輸出字符流。
BufferedReader: 帶緩存的輸入字符流。
BufferedWriter: 帶緩存的輸出字符流。
3. 數據流
在Java中,數據流是可以讀寫原始數據類型(int、float、long等)和字符串的類。以下是常用的數據流類:
DataInputStream: 是用於讀取Java原始數據類型和字符串的輸入流。
DataOutputStream: 實現用於將Java原始數據類型和字符串寫入數據流的輸出流。
四、輸入輸出流樣例
以下是Java輸入輸出流的示例:
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
// 創建一個文件
File myFile = new File("myFile.txt");
myFile.createNewFile();
// 創建一個輸出字節流
OutputStream os = new FileOutputStream(myFile);
// 寫入一些數據
byte[] data = "Java輸入輸出流簡介".getBytes();
os.write(data);
// 關閉流
os.close();
// 創建一個輸入字節流
InputStream is = new FileInputStream(myFile);
// 讀取數據並打印
byte[] b = new byte[1024];
is.read(b);
System.out.println(new String(b));
is.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
這個示例中我們首先創建了一個名為myFile.txt的文件,然後創建一個輸出字節流,並寫入一些數據。之後,我們創建一個輸入字節流來讀取這個文件,並將讀取的數據打印到控制台上。最後我們關閉了這些流。
總結
Java 輸入輸出流是Java程序中不可或缺的部分。我們本文介紹了Java輸入輸出流的基礎概念,輸入流和輸出流的區別,以及常用的輸入輸出類和相應的示例。這些信息將幫助Java程序員了解如何使用Java的輸入輸出流進行數據讀寫操作。
原創文章,作者:RPLZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/141717.html