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

如何使用Java函数库中的IO函数读写文件以及网络编程?

发布时间:2023-07-17 14:16:09

Java函数库中提供了丰富的IO函数,可以用于读写文件以及进行网络编程。下面将详细介绍如何使用Java函数库中的IO函数进行文件读写和网络编程。

1. 文件读写:

Java函数库中的IO函数提供了多种方式进行文件读写操作。其中常用的类有File、FileReader、FileWriter、BufferedReader和BufferedWriter等。

- 读文件:

     File file = new File("input.txt");
     try {
         FileReader reader = new FileReader(file);
         BufferedReader bufferedReader = new BufferedReader(reader);

         String line;
         while ((line = bufferedReader.readLine()) != null) {
             System.out.println(line);
         }

         bufferedReader.close();
         reader.close();
     } catch (IOException e) {
         e.printStackTrace();
     }
     

上述代码首先创建了一个File对象,表示要读取的文件。然后使用FileReader来创建一个Reader对象,再使用BufferedReader将其包装,以便一次读取一行数据。

- 写文件:

     File file = new File("output.txt");
     try {
         FileWriter writer = new FileWriter(file);
         BufferedWriter bufferedWriter = new BufferedWriter(writer);

         bufferedWriter.write("Hello, world!");
         bufferedWriter.newLine();
         bufferedWriter.write("Java IO");

         bufferedWriter.close();
         writer.close();
     } catch (IOException e) {
         e.printStackTrace();
     }
     

上述代码首先创建了一个File对象,表示要写入的文件。然后使用FileWriter来创建一个Writer对象,再使用BufferedWriter将其包装,以便一次写入一行数据。

2. 网络编程:

Java函数库中的IO函数提供了多种方式进行网络编程。其中常用的类有Socket、ServerSocket、InputStream、OutputStream、BufferedReader和BufferedWriter等。

- 客户端:

     String serverName = "localhost";
     int port = 8080;
     try {
         Socket socket = new Socket(serverName, port);
         OutputStream outputStream = socket.getOutputStream();
         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));

         writer.write("Hello, server!");
         writer.newLine();
         writer.flush();

         InputStream inputStream = socket.getInputStream();
         BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
         String response = reader.readLine();
         System.out.println("Server response: " + response);

         reader.close();
         inputStream.close();
         writer.close();
         outputStream.close();
         socket.close();
     } catch(IOException e) {
         e.printStackTrace();
     }
     

上述代码首先创建了一个Socket对象,表示客户端要连接的服务器地址和端口号。然后使用getOutputStream获取输出流,并使用BufferedWriter将其包装,以便进行数据写入。再使用getInputStream获取输入流,并使用BufferedReader将其包装,以便进行数据读取。

- 服务器端:

     int port = 8080;
     try {
         ServerSocket serverSocket = new ServerSocket(port);
         System.out.println("Server is listening on port " + port);

         Socket socket = serverSocket.accept();
         System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());

         InputStream inputStream = socket.getInputStream();
         BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
         String request = reader.readLine();
         System.out.println("Client request: " + request);

         OutputStream outputStream = socket.getOutputStream();
         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream));
         writer.write("Hello, client!");
         writer.newLine();
         writer.flush();

         reader.close();
         inputStream.close();
         writer.close();
         outputStream.close();
         socket.close();
         serverSocket.close();
     } catch(IOException e) {
         e.printStackTrace();
     }
     

上述代码首先创建了一个ServerSocket对象,表示服务器要监听的端口号。然后使用accept方法等待客户端连接,并获取连接后的Socket对象。再使用getInputStream获取输入流,并使用BufferedReader将其包装,以便进行数据读取。使用getOutputStream获取输出流,并使用BufferedWriter将其包装,以便进行数据写入。

通过使用Java函数库中的IO函数,我们可以方便地进行文件读写和网络编程操作。以上只是基本的示例,实际应用中还可以根据具体需求进行更复杂的操作和处理。