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-hk/n/247396.html
微信掃一掃
支付寶掃一掃