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

Java中的输入输出流函数是什么?如何使用它们来读取和写入数据?

发布时间:2023-05-24 11:23:41

Java中的输入输出流(IO)函数是用于读写数据。用于读取数据的类是InputStream,用于写入数据的类是OutputStream。这些类是抽象类,因此你需要使用子类来实现实际的功能。

Java提供了Java.io包,其中包括各种用于读写数据的流,如FileInputStream,FileOutputStream,BufferedReader,和PrintWriter等。

使用流读取数据

流可以从文件、控制台、网络或其他设备中读取数据。以下是如何读取文件的方法:

1. 创建File对象,它表示要读取的文件的路径和名称。

File file =new File("file.txt");

2. 创建FileInputStream对象,它表示要读取文件的输入流。

FileInputStream inputStream =new FileInputStream(file);

3. 创建一个byte数组来存储从文件中读取的数据。

byte[] buffer = new byte[1024];

4. 通过调用InputStream的read()方法,从输入流中读取数据,并将其存储在缓冲区中。

int bytesRead = inputStream.read(buffer);

5. 关闭输入流。

inputStream.close();

使用流写入数据

与读取文件不同,写入文件需要使用FileOutputStream类来获取文件输出流。以下是如何写入文件的方法:

1. 创建File对象,它表示要写入的文件的路径和名称。

File file = new File("file.txt");

2. 创建FileOutputStream对象,它表示要写入文件的输出流。

FileOutputStream outputStream = new FileOutputStream(file);

3. 创建要写入的数据。

String data = "This is some text that will be written to the file.";

4. 将数据从字符串转换为byte数组。

byte[] bytes = data.getBytes();

5. 使用write()方法将数据写入输出流。

outputStream.write(bytes);

6. 关闭输出流。

outputStream.close();

使用缓冲区减少I/O操作

当你需要大量读写数据时,频繁调用I/O方法会减慢程序的速度。为了提高性能,可以使用缓冲区来存储数据并减少I/O操作的次数。

BufferedInputStream和BufferedOutputStream是Java中提供的缓冲I/O类。它们通过使用内存中的缓冲区来减少了对系统I/O函数的调用,从而提高了应用程序的性能。

以下是如何使用缓冲区来读取和写入文件的方法:

读取文件:

1. 创建File对象,它表示要读取的文件的路径和名称。

File file = new File("file.txt");

2. 创建FileInputStream对象以打开文件作为输入流。

FileInputStream inputStream = new FileInputStream(file);

3. 创建BufferedInputStream对象,并将FileInputStream对象传递给它,将其包装在缓冲区中。

BufferedInputStream bufferedInput = new BufferedInputStream(inputStream);

4. 声明要读取的byte数组的大小。

byte[] buffer = new byte[1024];

5. 通过调用缓冲区中的read()方法,从输入流中读取数据并将其存储在byte数组中。

int bytesRead = bufferedInput.read(buffer);

6. 关闭输入流。

bufferedInput.close();

写入文件:

1. 创建File对象,它表示要写入的文件的路径和名称。

File file = new File("file.txt");

2. 创建FileOutputStream对象以打开文件作为输出流。

FileOutputStream outputStream = new FileOutputStream(file);

3. 创建BufferedOutputStream对象,并将FileOutputStream对象传递给它,将其包装在缓冲区中。

BufferedOutputStream bufferedOutput = new BufferedOutputStream(outputStream);

4. 创建要写入的数据。

String data = "This is some text that will be written to the file.";

5. 将数据从字符串转换为byte数组。

byte[] bytes = data.getBytes();

6. 使用write()方法将byte数组中的数据写入输出流。

bufferedOutput.write(bytes);

7. 关闭输出流。

bufferedOutput.close();

总结

Java中的输入输出流函数是用于读写数据的重要类。你可以使用这些类来从文件、控制台、网络或其他设备中读取和写入数据。此外,缓冲I/O类可以有效地提高应用程序的性能,减少对系统I/O函数的调用。熟练掌握Java中的输入输出流函数是非常重要的,因为它们是编写高效和可靠的Java程序的关键。