Java中的I/O過濾器是什麼?
本文將幫助您瞭解Java中的I/O過濾器。
Java I/O 過濾器
Java I/O 過濾器位於java.io包中。它提供了一組用於讀取和寫入輸入和輸出源資料的輸入和輸出流。java.io中有多種型別的類,例如InputStream、OutputStream等。下面討論一些重要的型別:
輸入流
java.io中的InputStream類是一個抽象的超類,用於從輸入源讀取資料。源可以是檔案、字串或任何可以包含資料的物件。此類是用於讀取位元組陣列、標記流中的位置、跳過輸入位元組、確定可讀取位元組數和重置流中當前位置的程式設計介面。建立時,輸入流會自動開啟。可以使用clone()方法手動關閉流,或者在物件被垃圾回收時預設關閉它。
InputStream類中包含的一些方法:
read()
read(byte[] array)
available()
mark()
reset()
markSupported()
skip()
close()
語法
InputStream object = new FileInputStream();
示例
File.txt 您好讀者!!歡迎來到Java。
import java.io.FileInputStream; // importing Input Stream class in java.io package import java.io.InputStream; class InputStreamExample { // class declaration public static void main(String args[]){ // main function declaration byte[] array = new byte[100]; // byte array initialization try {// try block InputStream input = new FileInputStream("File.txt"); // Input Stream class object created System.out.println("Available bytes in the file: " + input.available()); input.read(array); // reading byte from input stream System.out.println("Data read from the file: "); String data = new String(array); // converting byte array into string System.out.println(data); input.close(); // closing the input stream } catch (Exception e) { // catch block e.getStackTrace(); } } }
輸出
Available bytes in the file: 32 Data read from the file: Hello Readers!! Welcome to Java.
輸出流
java.io中的OutputStream類是一個抽象的超類,用於將資料寫入輸出源。源可以是檔案、字串、記憶體或任何可以包含資料的物件。它是InputStream的同級類,可以寫入InputStream可讀取的資料。此類是用於將位元組陣列寫入流和重新整理流的程式設計介面。建立時,輸出流會自動開啟。可以使用clone()方法手動關閉流,或者在物件被垃圾回收時預設關閉它。
OutputStream類中包含的一些方法:
write()
write(byte[] array)
flush()
close()
語法
OutputStream object = new FileOutputStream();
示例
import java.io.FileOutputStream; // importing Output Stream class in java.io package import java.io.OutputStream; public class OutputStreamExample { // class declaration public static void main(String args[]) { // main function declaration String data = "Hello Readers!! Welcome to TutorialsPoint"; // string variable storing line to be written in File.txt try { // try block OutputStream out = new FileOutputStream("File.txt"); // Output Stream class object created byte[] dataBytes = data.getBytes(); // Converts the string into bytes out.write(dataBytes); // Writes data to the output stream System.out.println("Data is written to the file."); out.close(); // Closes the output stream } catch (Exception e) { // catch block e.getStackTrace(); } } }
輸出
Data is written to the file.
檔案
File類是具有目錄路徑名的檔案的抽象版本。路徑名可以是相對的或絕對的。存在不同的方法用於處理目錄和檔案,例如create()、delete()、rename()等。
示例
import java.io.*; // importing java.io package public class FileExample { // class declaration public static void main(String[] args){ // main function declaration try { // try block File file = new File("File1.txt"); // creating new file if (file.createNewFile()){ // checking if new file is created or not System.out.println("New File is created!"); } else { System.out.println("File already exists."); } } catch (IOException e) { // catch block e.printStackTrace(); } } }
輸出
New File is created!
RandomAccessFile
RandomAccessFile類用於讀取和寫入隨機訪問檔案。隨機訪問檔案具有與大型位元組陣列相同的行為特徵。檔案指標可以稱為游標,用於讀寫操作。如果在讀取所需位元組數之前控制到達檔案末尾,則會丟擲EOFException。
StreamTokenizer
StringTokenizer類用於將字串分解成更小的部分,稱為標記。它是Java的遺留類之一。它不提供區分數字、帶引號的字串、識別符號等的功能。例如:
給定字串:您好,本文的讀者
使用String Tokenizer後,標記為:您好,讀者,的,本文,讀者。
StringTokenizer類中定義了3種類型的建構函式:
StringTokenizer (String str) 這將建立一個具有指定字串的StringTokenizer。
StringTokenizer (String str, String delim) 這將建立一個具有指定字串和分隔符的StringTokenizer。分隔符是將字串分割(分離)成標記的字元。
StringTokenizer (String str, String delim, boolean returnValue) 這將建立一個具有指定字串、分隔符和returnValue的StringTokenizer。如果返回值為true或1,則分隔符字元被視為標記。如果返回值為false或0,則分隔符字元將字串分割成單獨的標記。