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

Java中如何使用IO函数来读写文件或网络通信?

发布时间:2023-06-29 20:09:33

在Java中,可以使用IO函数来读写文件或进行网络通信。Java中的IO操作主要通过InputStream和OutputStream类来实现。下面将分别介绍如何使用IO函数来读写文件和进行网络通信。

一、文件读写

1. 使用FileInputStream和FileOutputStream类来读写文件。

(1)读取文件:

   FileInputStream fis = new FileInputStream("file.txt");
   int data;
   while ((data = fis.read()) != -1) {
       // 处理读取到的数据
       System.out.print((char) data);
   }
   fis.close();
   

(2)写入文件:

   FileOutputStream fos = new FileOutputStream("file.txt");
   String content = "Hello, world!";
   byte[] bytes = content.getBytes();
   fos.write(bytes);
   fos.close();
   

2. 使用BufferedReader和BufferedWriter类来读写文件,可以提高读写的效率。

(1)读取文件:

   BufferedReader br = new BufferedReader(new FileReader("file.txt"));
   String line;
   while ((line = br.readLine()) != null) {
       // 处理读取到的数据
       System.out.println(line);
   }
   br.close();
   

(2)写入文件:

   BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"));
   String content = "Hello, world!";
   bw.write(content);
   bw.close();
   

二、网络通信

1. 使用Socket来实现TCP客户端和服务器之间的通信。

(1)TCP服务器端:

   ServerSocket serverSocket = new ServerSocket(8888);
   Socket socket = serverSocket.accept();
   InputStream is = socket.getInputStream();
   byte[] bytes = new byte[1024];
   int len;
   while ((len = is.read(bytes)) != -1) {
       // 处理接收到的数据
       String data = new String(bytes, 0, len);
       System.out.println(data);
   }
   is.close();
   socket.close();
   serverSocket.close();
   

(2)TCP客户端:

   Socket socket = new Socket("localhost", 8888);
   OutputStream os = socket.getOutputStream();
   String message = "Hello, server!";
   byte[] bytes = message.getBytes();
   os.write(bytes);
   os.close();
   socket.close();
   

2. 使用DatagramSocket来实现UDP客户端和服务器之间的通信。

(1)UDP服务器端:

   DatagramSocket serverSocket = new DatagramSocket(8888);
   byte[] bytes = new byte[1024];
   DatagramPacket packet = new DatagramPacket(bytes, bytes.length);
   serverSocket.receive(packet);
   String data = new String(packet.getData(), 0, packet.getLength());
   System.out.println(data);
   serverSocket.close();
   

(2)UDP客户端:

   DatagramSocket clientSocket = new DatagramSocket();
   byte[] bytes = "Hello, server!".getBytes();
   InetAddress address = InetAddress.getByName("localhost");
   DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, 8888);
   clientSocket.send(packet);
   clientSocket.close();
   

以上是关于如何在Java中使用IO函数来读写文件或进行网络通信的简单介绍。在实际应用中,可以根据具体需求选择合适的IO类和方法来进行操作,并进行相关的异常处理。