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,则分隔符字符将字符串分割成单独的标记。