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的遺留類之一。它不提供區分數字、帶引號的字串、識別符號等的功能。例如:

給定字串:Hi Readers of this Article

使用StringTokenizer後,標記為:Hi、Readers、of、this、Article。

StringTokenizer類中定義了3種類型的建構函式:

  • StringTokenizer (String str) 這將建立具有指定字串的StringTokenizer。

  • StringTokenizer (String str, String delim) 這將建立具有指定字串和分隔符的StringTokenizer。分隔符是將字串分割成標記的字元。

  • StringTokenizer (String str, String delim, boolean returnValue) 這將建立具有指定字串、分隔符和returnValue的StringTokenizer。如果returnValue為true或1,則分隔符字元被視為標記。如果returnValue為false或0,則分隔符字元將字串分割成單獨的標記。

更新於:2022年9月5日

893 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.