java服务器之间以流的方式进行文件传输
时间: 2024-04-26 19:24:26 浏览: 9
在Java服务器之间以流的方式进行文件传输可以使用Socket套接字编程实现。下面是一个简单的示例代码,演示了如何在两个Java服务器之间以流的方式传输文件。
发送端代码:
```java
import java.io.*;
import java.net.*;
public class FileSender {
public static void main(String[] args) throws Exception {
// 创建Socket并连接目标服务器
Socket socket = new Socket("目标服务器地址", 8080);
OutputStream outputStream = socket.getOutputStream();
// 读取要发送的文件并发送
FileInputStream fileInputStream = new FileInputStream(new File("要发送的文件路径"));
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
// 关闭连接
fileInputStream.close();
socket.close();
}
}
```
接收端代码:
```java
import java.io.*;
import java.net.*;
public class FileReceiver {
public static void main(String[] args) throws Exception {
// 创建ServerSocket并监听端口
ServerSocket serverSocket = new ServerSocket(8080);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
// 创建目标文件并写入数据
File file = new File("接收到的文件路径");
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
// 关闭连接
fileOutputStream.close();
socket.close();
serverSocket.close();
}
}
```
在发送端的代码中,创建Socket并连接目标服务器,然后读取要发送的文件并通过Socket的输出流写入数据。在接收端的代码中,创建ServerSocket并监听端口,然后接受连接并通过Socket的输入流读取数据并写入到目标文件中。
需要注意的是,在实际应用中,需要在代码中加入一些错误处理和边界检查来保证程序的健壮性。