java socket用RandomAccessFile传大文件
时间: 2023-08-10 21:55:00 浏览: 98
Socket传输大文件
4星 · 用户满意度95%
使用Java的Socket和RandomAccessFile结合可以实现通过网络传输大文件。下面是一个示例代码,展示了如何使用Socket和RandomAccessFile传输大文件:
```java
import java.io.*;
import java.net.*;
public class FileTransfer {
public static void main(String[] args) {
String sourceFilePath = "path/to/source/file";
String destinationFilePath = "path/to/destination/file";
String serverAddress = "127.0.0.1";
int serverPort = 12345;
try {
Socket socket = new Socket(serverAddress, serverPort);
// 发送文件名
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(destinationFilePath);
// 读取源文件并发送给服务器
RandomAccessFile file = new RandomAccessFile(sourceFilePath, "r");
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = file.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
System.out.println("File transferred successfully!");
file.close();
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们首先建立了一个Socket连接到指定的服务器地址和端口。然后,我们将目标文件路径发送给服务器,以便服务器知道要保存文件的位置。
接下来,我们使用RandomAccessFile读取源文件,并将其内容写入Socket的OutputStream中。通过这种方式,数据会通过网络传输到服务器端。
请注意,上述代码仅实现了客户端的部分。你还需要编写服务器端的代码来接收文件并保存到指定位置。
希望这可以帮助到你!如果你还有其他问题,请随时提问。
阅读全文