Java中的IO操作:文件读写、网络通信等实例
Java提供了多种方式来处理IO(输入/输出)操作,包括文件读写和网络通信。以下是一些基本的实例:
文件读写####1. 使用FileInputStream
和FileOutputStream
读写文件```javaimport java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileIOExample {
public static void main(String[] args) {
String filePath = “example.txt”;
//写入文件 try (FileOutputStream fos = new FileOutputStream(filePath)) {
fos.write(“Hello, World!”.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
//读取文件 try (FileInputStream fis = new FileInputStream(filePath)) {
int content;
while ((content = fis.read()) != -1) {
System.out.print((char) content);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}####2. 使用`BufferedReader`和`BufferedWriter`读写文件
javaimport java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedFileIOExample {
public static void main(String[] args) {
String filePath = “example.txt”;
//写入文件 try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) {
bw.write(“Hello, World!”);
} catch (IOException e) {
e.printStackTrace();
}
//读取文件 try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}###网络通信####1. 使用`Socket`和`ServerSocket`进行TCP通信
javaimport java.io.;
import java.net.;
public class TCPClientServerExample {
public static void main(String[] args) throws IOException {
//服务器端 try (ServerSocket serverSocket = new ServerSocket(1234)) {
System.out.println(“Server is listening on port1234”);
try (Socket clientSocket = serverSocket.accept()) {
try (BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()))) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(“Client says: “ + inputLine);
out.write(“Server received your message”);
out.newLine();
out.flush();
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
//客户端 try (Socket socket = new Socket(“localhost”,1234);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))) {
out.write(“Hello from client”);
out.newLine();
out.flush();
String fromServer;
while ((fromServer = in.readLine()) != null) {
System.out.println(“Server says: “ + fromServer);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}####2. 使用`DatagramSocket`和`DatagramPacket`进行UDP通信
javaimport java.io.;
import java.net.;
public class UDPClientServerExample {
public static void main(String[] args) throws IOException {
//服务器端 try (DatagramSocket serverSocket = new DatagramSocket(1234)) {
System.out.println(“Server is listening on port1234”);
byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData(),0, receivePacket.getLength());
System.out.println(“RECEIVED: “ + sentence);
} catch (IOException e) {
e.printStackTrace();
}
//客户端 try (DatagramSocket clientSocket = new DatagramSocket()) {
String sentence = “Hello from client”;
byte[] buf = sentence.getBytes();
InetAddress IPAddress = InetAddress.getByName(“localhost”);
DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, IPAddress,1234);
clientSocket.send(sendPacket);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```这些示例展示了Java中基本的文件读写和网络通信操作。在实际应用中,你可能需要根据具体需求进行调整和优化。
还没有评论,来说两句吧...