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

Java函数中的IO操作:如何读写文件、网络通信等

发布时间:2023-06-01 22:30:56

Java是一种面向对象的编程语言,在Java中,IO操作是非常重要的一部分。Java中的IO操作包括:读写文件、网络通信、操作数据库等等。在本文中,我们将着重介绍如何读写文件和网络通信。

一、读写文件

Java中读写文件的方式有很多种,最常见的方式有以下两种:

1. FileInputStream和FileOutputStream

FileInputStream和FileOutputStream是Java中最基本的读写文件的类。 FileInpuStream类从文件输入流读取字节,而FileOutputStream类将字节写入到文件输出流中。下面是读写文件的一个示例:

import java.io.*;

public class FileTest {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("input.txt");
        FileOutputStream fos = new FileOutputStream("output.txt");
        byte[] buffer = new byte[1024];
        int len = 0;
        while ((len = fis.read(buffer)) != -1) {
            fos.write(buffer, 0, len);
        }
        fis.close();
        fos.close();
    }
}

2. BufferedReader和BufferedWriter

BufferedReader和BufferedWriter是Java中高级读写文件的类,它们提供了更方便的读写操作。下面是使用BufferedReader和BufferedWriter读写文件的一个例子:

import java.io.*;

public class FileTest {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("input.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"));
        String line = "";
        while ((line = br.readLine()) != null) {
            bw.write(line);
            bw.newLine();
        }
        br.close();
        bw.close();
    }
}

二、网络通信

Java中的网络通信分为两个方面:客户端和服务器端。Java提供了Socket和ServerSocket两个类,分别对应客户端和服务器端。下面是一个使用Socket和ServerSocket进行网络通信的例子:

1. 服务器端代码

import java.io.*;
import java.net.*;

public class Server {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(8888);
        Socket s = ss.accept();
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        String line = null;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
        s.close();
        ss.close();
    }
}

2. 客户端代码

import java.io.*;
import java.net.*;

public class Client {
    public static void main(String[] args) throws IOException {
        Socket s = new Socket("localhost", 8888);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
        bw.write("Hello world!");
        bw.newLine();
        bw.flush();
        s.close();
    }
}

以上就是Java中读写文件和网络通信的基本操作,需要注意的是,在进行IO操作时,需要关闭流等资源。同时,要避免因为文件过大或者数据传输过程中出现异常导致程序崩溃,可通过捕获异常来避免这种情况。