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

Java中的IO函数是什么?如何读写文件和网络流?

发布时间:2023-06-18 13:28:29

Java 中的 IO 函数是一些可以让开发者在程序中对文件、网络流、内存数据等进行读写的函数。它们通常被封装在 java.io 库中,让用户可以通过简单的 API 调用来执行各种 IO 操作。

在 Java 中,文件 IO 要使用到 File 和 FileInputStream 以及 FileOutputStream 三个类。其中,File 类可以让开发者对文件和目录进行操作,FileInputStream 和 FileOutputStream 类分别实现了输入流和输出流,其中 FileInputStream 的作用是读取文件中的数据,而 FileOutputStream 的作用则是将数据写入到文件中。

首先,在 Java 中读取文件可以通过以下步骤完成:

1、通过 File 类将文件创建为一个 File 对象。

2、通过 FileInputStream 创建一个输入流对象。

3、通过输入流对象读取文件中的数据。

4、通过程序接受读取到的数据。

具体的代码如下:

try {
    File file = new File("test.txt");
    FileInputStream input = new FileInputStream(file);
    byte[] data = new byte[(int) file.length()];
    input.read(data);
    String str = new String(data);
    System.out.println(str);
    input.close();
} catch (Exception e) {
    e.printStackTrace();
}

以上代码将 test.txt 文件读取到内存中,并且通过字符串类型的 str 来存储读取到的数据。

接下来,我们再来看如何在 Java 中写入文件,可以用以下代码实现:

try {
    File file = new File("test.txt");
    FileOutputStream output = new FileOutputStream(file);
    String str = "这是一条测试数据";
    byte[] data = str.getBytes();
    output.write(data);
    output.close();
} catch (Exception e) {
    e.printStackTrace();
}

在写文件时,我们通过 FileOutputStream 类创建一个文件输出流对象,并且将数据写入到文件中。在这里,我们将字符串类型的数据 str 以字节数组的形式存储,并通过 write() 方法将其写入到文件中。

接下来,我们来看一下如何在 Java 中进行网络 IO 的操作。

在 Java 中,通过 Socket 和 ServerSocket 类即可实现对网络流的读写。Socket 类提供了客户端网络 IO 的能力,而 ServerSocket 类则提供了服务器端网络 IO 的能力。

以下是一段简单的代码示例,通过该示例可以了解如何通过 Socket 类实现向服务器发送请求:

try {
    Socket client = new Socket("www.baidu.com", 80);
    OutputStream output = client.getOutputStream();
    String request = "GET / HTTP/1.1\r
Host: www.baidu.com\r
\r
";
    output.write(request.getBytes());
    output.flush();
    InputStream input = client.getInputStream();
    byte[] data = new byte[input.available()];
    input.read(data);
    String str = new String(data);
    System.out.println(str);
    input.close();
    output.close();
    client.close();
} catch (Exception e) {
    e.printStackTrace();
}

以上代码通过向百度服务器发送 GET 请求,从而获取了其主页的 HTML 页面。其中,我们使用 Socket 类创建了一个名为 client 的 Socket 对象,然后通过 getOutputStream 方法获取输出流对象,并将请求发送给服务器。通过 getInputStream 方法获取输入流对象,从而读取服务器的响应信息,并将其以字符串形式输出。

总的来说,在 Java 中进行 IO 操作非常方便,通过简单的 API 调用,开发者可以轻松地实现对文件、网络流、内存数据等的读取和写入。只需要注意数据类型的转换,并且在操作完成后记得及时关闭流对象,即可完成各种需求。