java 代码远程访问本地电脑的文件
时间: 2023-09-30 12:13:04 浏览: 52
以下是一个使用Java Socket实现远程访问本地电脑文件的示例代码:
服务器端代码:
```
import java.io.*;
import java.net.*;
public class FileServer {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("Server started, listening on port 8888...");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("Client connected: " + socket.getRemoteSocketAddress());
// 获取客户端发送的文件名
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String fileName = in.readLine();
System.out.println("File requested: " + fileName);
// 读取本地文件并发送给客户端
File file = new File(fileName);
if (file.exists()) {
OutputStream out = socket.getOutputStream();
FileInputStream fileIn = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len;
while ((len = fileIn.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
fileIn.close();
out.close();
} else {
System.out.println("File not found: " + fileName);
}
socket.close();
System.out.println("Client disconnected.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
客户端代码:
```
import java.io.*;
import java.net.*;
public class FileClient {
public static void main(String[] args) {
try {
String serverAddress = "localhost";
int serverPort = 8888;
String fileName = "test.txt";
Socket socket = new Socket(serverAddress, serverPort);
System.out.println("Connected to server: " + socket.getRemoteSocketAddress());
// 发送文件名给服务器端
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.println(fileName);
out.flush();
// 接收服务器端发送的文件内容
InputStream in = socket.getInputStream();
FileOutputStream fileOut = new FileOutputStream("output.txt");
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
fileOut.write(buffer, 0, len);
}
fileOut.close();
in.close();
socket.close();
System.out.println("Disconnected from server.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在运行客户端代码前,需要先将本地文件test.txt放到服务器端的工作目录下。运行服务器端代码后,再运行客户端代码即可从服务器端下载test.txt文件到本地电脑的工作目录下,并保存为output.txt文件。