java开发文件传输
时间: 2023-08-30 17:12:10 浏览: 35
Java中可以使用Socket进行文件传输。下面是一个简单的示例代码:
服务端代码:
```java
import java.net.*;
import java.io.*;
public class FileServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8888); // 创建ServerSocket对象,监听端口8888
} catch (IOException e) {
System.err.println("Could not listen on port: 8888.");
System.exit(1);
}
Socket clientSocket = null;
try {
System.out.println("Waiting for client...");
clientSocket = serverSocket.accept(); // 等待客户端连接
System.out.println("Client connected: " + clientSocket.getInetAddress().getHostName());
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
// 接收文件
InputStream in = clientSocket.getInputStream();
OutputStream out = new FileOutputStream("received_file.txt");
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
clientSocket.close();
serverSocket.close();
}
}
```
客户端代码:
```java
import java.net.*;
import java.io.*;
public class FileClient {
public static void main(String[] args) throws IOException {
String serverName = "localhost";
int port = 8888;
try {
System.out.println("Connecting to " + serverName + " on port " + port);
Socket clientSocket = new Socket(serverName, port); // 连接服务器
System.out.println("Connected.");
// 发送文件
OutputStream out = clientSocket.getOutputStream();
InputStream in = new FileInputStream("file_to_send.txt");
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
clientSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个示例代码中,服务端监听端口8888,客户端连接服务器后发送文件,服务端接收文件并保存为"received_file.txt"。你可以根据实际情况修改代码,比如修改文件名、路径、端口等。