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类和方法来进行操作,并进行相关的异常处理。
