Java中的IO操作:文件读写及网络通信案例
Java中的IO(输入/输出)操作是处理数据流的基础,包括文件读写和网络通信。以下是一些基本的文件读写和网络通信的Java代码示例。
文件读写####1.写入文件```javaimport java.io.FileWriter;
import java.io.IOException;
public class FileWriteExample {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter(“example.txt”);
writer.write(“Hello, this is a test file.”);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}####2.读取文件
javaimport java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader(“example.txt”));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```###网络通信####1. 使用Socket进行TCP通信客户端:
```javaimport java.io.;
import java.net.;
public class TCPClient {
public static void main(String[] args) {
try {
Socket socket = new Socket(“localhost”,1234);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
String fromServer = in.readLine();
System.out.println(“From Server: “ + fromServer);
}
out.close();
in.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```服务器端:
```javaimport java.io.;
import java.net.;
public class TCPServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(1234);
while (true) {
Socket socket = serverSocket.accept();
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromClient;
while ((fromClient = in.readLine()) != null) {
System.out.println(“From Client: “ + fromClient);
String response = “Echo: “ + fromClient;
out.println(response);
}
in.close();
out.close();
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```####2. 使用DatagramSocket进行UDP通信客户端:
```javaimport java.io.;
import java.net.;
public class UDPClient {
public static void main(String[] args) {
try {
DatagramSocket socket = new DatagramSocket();
InetAddress address = InetAddress.getByName(“localhost”);
byte[] buf = new byte[256];
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
buf = userInput.getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, address,1234);
socket.send(packet);
DatagramPacket receivePacket = new DatagramPacket(buf, buf.length);
socket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData(),0, receivePacket.getLength());
System.out.println(“FROM SERVER: “ + modifiedSentence);
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```服务器端:
```javaimport java.io.;
import java.net.;
public class UDPServer {
public static void main(String[] args) {
try {
DatagramSocket serverSocket = new DatagramSocket(1234);
byte[] buf = new byte[256];
while (true) {
DatagramPacket receivePacket = new DatagramPacket(buf, buf.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData(),0, receivePacket.getLength());
System.out.println(“RECEIVED: “ + sentence);
String modifiedSentence = “Echo: “ + sentence;
buf = modifiedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, receivePacket.getAddress(), receivePacket.getPort());
serverSocket.send(sendPacket);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```这些代码示例提供了Java中文件读写和网络通信的基本框架。在实际应用中,你可能需要根据具体需求进行调整和优化。
还没有评论,来说两句吧...