Java流為中心的編程是Java編程的重要組成部分。流(stream)是Java編程中處理輸入和輸出(I/O)的基礎。Java中的流為程序提供了一種簡單、方便的處理I/O的方式。
一、流介紹
Java中的流(stream)是一種用於處理輸入/輸出(I/O)的抽象。Java中相對於I/O的流有兩個不同的類別:字節流和字符流。字節流以字節數組為基礎,而字符流以Unicode字符為基礎。從讀取或寫入的對象的類型來劃分,Java的流主要可以分為如下四種類型:
- 字節流(InputStream和OutputStream): 用於處理8位字節流
- 字符流(Reader和Writer): 用於處理Unicode字符流
- 字節緩衝流(BufferedInputStream和BufferedOutputStream): 帶有緩存功能的字節流,減少了對底層系統的調用,使得讀寫效率有所提高
- 字符緩衝流(BufferedReader和BufferedWriter): 帶有緩存功能的字符流,減少了對底層系統的調用,使得讀寫效率有所提高
二、流的應用
1. 數據讀取和處理
Java流可用於讀/寫文件,網絡連接或任何其他I/O數據源。可以從一個輸入流讀取數據,並在使用緩存區的情況下對數據執行某些操作,然後將結果寫入輸出流。
2. 流作為參數傳遞
Java中的方法可以使用流作為參數傳遞。例如下面的方法將一個字節數組(byte[])寫入輸出流:
public void writeBytes(byte[] bytes, OutputStream outStream) throws IOException{
outStream.write(bytes);
outStream.flush();
}
3. 流過濾器
Java中的流過濾器(FilterInputStream 和 FilterOutputStream)可用於增強流的數據讀取和寫入功能。
三、流的示例代碼
1. 從文件讀取數據並將它們寫入到另一個文件
public static void copyFile(File sourceFile, File destFile) throws IOException {
InputStream in = new FileInputStream(sourceFile);
OutputStream out = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
}
2. 從控制台讀取數據
import java.io.*;
public class ReadFromConsole {
public static void main(String[] args) {
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(in);
try {
System.out.println("Enter some text:");
String text = reader.readLine();
System.out.println("The text you entered is: " + text);
} catch(IOException e) {
e.printStackTrace();
}
}
}
3. 寫入數據到文件
public class WriteToFile {
public static void main(String[] args) {
try {
FileWriter fWriter = new FileWriter("myFile.txt");
fWriter.write("Hello, world!");
fWriter.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
Java流在處理I/O方面提供了很多便利的方式。它們可以被用於處理各種不同類型的數據源,從磁盤上的文件到網絡連接。在許多不同的應用程序中,流都是至關重要的組成部分。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/219666.html
微信掃一掃
支付寶掃一掃