要將文件傳輸到另一個服務器,你可以使用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
會接收文件并保存到指定的路徑。