欢迎访问宙启技术站
智能推送

Java中的输入输出流函数使用指南

发布时间:2023-06-15 17:25:45

Java中的输入输出流函数使用指南

输入输出流是Java程序中和外部环境交互的重要方式之一,Java提供了标准输入和输出流。Java.io包中封装了一些流函数,可以处理各种输入输出流,以下是使用Java中输入输出流函数的指南。

一、Java流的概念

流是一个连续的数据序列,是同步传输数据的方式之一。在Java中,流可以理解称为从一个文件或其他源读取数据,将数据发送到文件或其他目标的数据的序列。

Stream流通常用于读写文件,或从网络读取数据,或向套接字发送数据,或其他I/O操作。

二、Java中的输入输出流

Java.io包中提供了许多输入和输出流函数,这是用于与文件、数组、网络和其他设备进行交互的Java类的集合。其中一些常见的流包括:

1. FileInputStream、FileOutputStream:用于输入和输出文件的字节流,数据一次处理一个字节。FileInputStream和FileOutputStream和基于文件的流进行数据的输入和输出,可实现对文件的读写,通常用于读取或写入二进制文件。

2. FileReader、FileWriter:用于输入和输出文件的字符流。FileReader是一个使用指定文件名的文件作为源的简单reader,即用于读取字符流,它输出的数据是变成了字符的数据。FileWriter是用于写入字符流的便利类,其输出的数据也是字符流。

3. ByteArrayInputStream,ByteArrayOutputStream:在内存中创建缓冲区,在缓冲区内进行输出与输入的流。

4. BufferedInputStream、BufferedOutputStream:用于加速处理流的处理,因为它可以在内存中缓存数据。

5. DataInputStream、DataOutpuStream:用于处理二进制数据的输入流和输出流,在后面的序列化中有用到。

三、Java中的输入输出流函数

1. FileInputStream

FileInputStream是可以用来读取文件的二进制数据流,读取文件的数据可以是byte或char,一般而言大多数应用场景下都是使用byte来读取,这里提供的是使用byte来读取的方法,使用FileInputStream类需要注意两个异常:FileNotFoundException和IOException。

语法:

public ByteArrayInputStream(String str)

输入:

str -- 这是一个要在缓冲区中读取的字符串

输出:

一个新的ByteArrayInputStream对象

2. FileOutputStream

FileOutputStream 用于写入文件的二进制数据流。读取和写入操作的数据可以是byte或者字符,对于字符操作很少使用FileOutputStream,更多使用FileWriter, FileOutputStream类的构造函数包含两个异常:FileNotFoundException和IOException。

语法:

public FileOutputStream(String name)

输入:

name -- 这是有文件路径及文件名称定义的 File 类对象或字符串

输出:

没有值

3. FileReader

FileReader 用于读取字符文件(.txt),其中读写内容是 16 位的 Unicode 字符,而且可以指定字符编码来读取。FileReader类和FileInputStream类的区别是前者可以读取字符流,后者只能读取字节流,FileReader中的read()方法可以读取单个字符或字符数组。

语法:

public FileReader(File file)

public FileReader(String fileName)

输入:

file -- 一个文件对象,表示文件名称

fileName -- 文件名称(String 对象)

输出:

一个新的 FileReader 对象。

4. FileWriter

FileWriter类用于向文件中写入数据。FileWriter类继承了Writer类,因此具有了向流中写入数据的能力,同样的,FileWriter抛出文件找不到的异常和IO异常,如你没有足够的权限访问某磁盘或目录会抛出安全异常。

语法:

public FileWriter(File file)

public FileWriter(String fileName)

输入:

file -- 一个文件对象,表示文件名称

fileName -- 文件名称(String 对象)

输出:

一个新的 FileWriter 对象。

5. ByteArrayInputStream

ByteArrayInputStream类在内存中创建,然后在缓冲区中读取数据流,是InputStream类的一个子类。ByteArrayInputStream类的作用是创建一个缓冲区,在缓冲区内进行输出与输入操作。

语法:

public ByteArrayInputStream(byte[] buf)

输入:

buf -- 数据源,它是一个 byte 类型的数组

输出:

一个新的 ByteArrayInputStream 对象

6. ByteArrayOutputStream

ByteArrayOutputStream 用于内存中创建一个缓冲区,可以将其中处理的内容进行存储,它的作用是在内存中创建一个缓冲区,然后在缓冲区中进行输出与输入操作。在建立类时,缓冲区会自动扩充。

语法:

public ByteArrayOutputStream(int size)

输入:

size -- 开始缓冲区大小。

输出:

没有值

7. BufferedInputStream

BufferedInputStream用于加速处理流的操作,具有缓存的功能,缓存中的数据处理效率比直接调用流处理数据高了很多。BufferedInputStream 类是 InputStream 类的子类,使用该类可以在输入流中加入缓冲区,在高效处理输入流数据时起到重要的作用。

语法:

public BufferedInputStream(InputStream in);

输入:

in -- 开始输入流

输出:

没有值

8. BufferedOutputStream

BufferedOutputStream也是用于加速处理流的操作,同样具有缓存的功能,在缓存区的助力下,我们可以更加高效的处理输入流中的数据,BufferedOutputStream使用的头文件与BufferedInputStream完全一样。

四、总结

Java中的输入输出流非常重要,它提供了统一的方式来读取文件、网络和其他设备,提高了效率和可靠性,也能提高程序的向后兼容性。

在应用程序中使用输入输出流可以使程序更具有扩展性和可维护性,Java.io包中封装了一些流函数,可以处理各种输入输出流。我们可以根据具体的使用场景,选择对应的输入输出流函数,按照指定的语法规则和参数,完成对数据的读取和写入操作。这些输入输出流函数的应用范围很广泛,在Java这个大家庭中,常用的输入输出流函数及其语法规则、使用方法和适用的场景也应当得到足够的熟悉和掌握。