Javaでファイルを別のサーバーに転送する方法は何ですか?
別のサーバーにファイルを転送するには、JavaのSocketクラスを使用してネットワーク通信を行うことができます。以下は、Socketを使用してファイルを転送する方法を示すサンプルコードです。
import java.io.*;
import java.net.Socket;
public class FileTransferClient {
public static void main(String[] args) {
String serverIP = "目标服务器IP地址";
int serverPort = 1234;
String filePath = "要传输的文件路径";
try {
Socket socket = new Socket(serverIP, serverPort);
// 获取输入流
FileInputStream fileInputStream = new FileInputStream(filePath);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
// 获取输出流
OutputStream outputStream = socket.getOutputStream();
// 创建缓冲区
byte[] buffer = new byte[1024];
int bytesRead;
// 从输入流读取数据,并写入输出流
while ((bytesRead = bufferedInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
// 关闭流
bufferedInputStream.close();
outputStream.close();
socket.close();
System.out.println("文件传输完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
上記の例のコードでは、serverIPをターゲットサーバーのIPアドレスに、serverPortをターゲットサーバーのポート番号に、そしてfilePathを転送するファイルのパスに置き換える必要があります。
その後、ターゲットサーバーで同様のコードを使用してファイルを受信することができます。
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class FileTransferServer {
public static void main(String[] args) {
int serverPort = 1234;
String savePath = "保存文件的路径";
try {
ServerSocket serverSocket = new ServerSocket(serverPort);
System.out.println("服务器已启动,等待连接...");
Socket socket = serverSocket.accept();
// 获取输入流
InputStream inputStream = socket.getInputStream();
// 创建输出流
FileOutputStream fileOutputStream = new FileOutputStream(savePath);
// 创建缓冲区
byte[] buffer = new byte[1024];
int bytesRead;
// 从输入流读取数据,并写入输出流
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
// 关闭流
fileOutputStream.close();
inputStream.close();
socket.close();
serverSocket.close();
System.out.println("文件接收完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
上記のサンプルコードでは、serverPortをサーバーにバインドされたポート番号に、savePathをファイル保存先のパスに置き換える必要があります。
FileTransferClientを実行すると、ファイルが送信され、目標サーバーのFileTransferServerがファイルを受信して指定されたパスに保存されます。