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 次浏览

启动你的职业生涯

完成课程后获得认证

开始学习
广告