java使用Socket实现TCP协议的excel文件从服务器下载到本机写出完整代码
时间: 2024-10-14 15:07:35 浏览: 28
在Java中,我们可以使用Socket和ServerSocket配合实现TCP通信,通过读取和写入流来下载Excel文件。这里是一个基本的示例代码,假设服务器已经准备好了一个名为"file.xlsx"的Excel文件:
```java
import java.io.*;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
public class FileDownloader {
public static void main(String[] args) {
String serverAddress = "localhost"; // 服务器地址,如实际IP或域名
int serverPort = 8000; // 服务器端口
String filePath = "/path/to/file.xlsx"; // 文件路径
try (Socket socket = new Socket(serverAddress, serverPort);
InputStream input = socket.getInputStream();
FileOutputStream fos = new FileOutputStream(filePath)) {
byte[] buffer = new byte[4096];
int bytesRead;
System.out.println("Connecting to the server...");
while ((bytesRead = input.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
fos.flush(); // 确保数据立即写入磁盘
System.out.print("."); // 显示下载进度
}
System.out.println("\nDownload complete!");
} catch (IOException e) {
System.err.println("Error downloading file: " + e.getMessage());
}
}
}
```
在这个例子中,客户端首先创建一个Socket连接到指定的服务器地址和端口。然后,它打开输入流从服务器接收文件内容,并将数据写入本地的FileOutputStream中。每读取一次数据,就更新一下进度。
阅读全文