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,則分隔符字元將字串分割成單獨的標記。

更新於:2022年9月5日

892 次瀏覽

啟動你的職業生涯

完成課程後獲得認證

開始學習
廣告