java怎么傳輸文件到另一個(gè)服務(wù)器

小億
301
2024-01-03 15:01:26
欄目: 云計(jì)算

要將文件傳輸?shù)搅硪粋€(gè)服務(wù)器,你可以使用Java中的Socket類進(jìn)行網(wǎng)絡(luò)通信。以下是一個(gè)示例代碼,展示了如何使用Socket傳輸文件:

import java.io.*;
import java.net.Socket;

public class FileTransferClient {
    public static void main(String[] args) {
        String serverIP = "目標(biāo)服務(wù)器IP地址";
        int serverPort = 1234;

        String filePath = "要傳輸?shù)奈募窂?quot;;

        try {
            Socket socket = new Socket(serverIP, serverPort);

            // 獲取輸入流
            FileInputStream fileInputStream = new FileInputStream(filePath);
            BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);

            // 獲取輸出流
            OutputStream outputStream = socket.getOutputStream();

            // 創(chuàng)建緩沖區(qū)
            byte[] buffer = new byte[1024];
            int bytesRead;

            // 從輸入流讀取數(shù)據(jù),并寫入輸出流
            while ((bytesRead = bufferedInputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            // 關(guān)閉流
            bufferedInputStream.close();
            outputStream.close();
            socket.close();

            System.out.println("文件傳輸完成");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代碼中,你需要替換serverIP為目標(biāo)服務(wù)器的IP地址,serverPort為目標(biāo)服務(wù)器的端口號(hào),以及filePath為要傳輸?shù)奈募穆窂健?/p>

然后在目標(biāo)服務(wù)器上,你可以使用類似的代碼來接收文件:

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("服務(wù)器已啟動(dòng),等待連接...");

            Socket socket = serverSocket.accept();

            // 獲取輸入流
            InputStream inputStream = socket.getInputStream();

            // 創(chuàng)建輸出流
            FileOutputStream fileOutputStream = new FileOutputStream(savePath);

            // 創(chuàng)建緩沖區(qū)
            byte[] buffer = new byte[1024];
            int bytesRead;

            // 從輸入流讀取數(shù)據(jù),并寫入輸出流
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                fileOutputStream.write(buffer, 0, bytesRead);
            }

            // 關(guān)閉流
            fileOutputStream.close();
            inputStream.close();
            socket.close();
            serverSocket.close();

            System.out.println("文件接收完成");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代碼中,你需要替換serverPort為服務(wù)器綁定的端口號(hào),以及savePath為文件保存的路徑。

這樣,當(dāng)你運(yùn)行FileTransferClient時(shí),它將會(huì)將文件傳輸?shù)侥繕?biāo)服務(wù)器上,目標(biāo)服務(wù)器上的FileTransferServer會(huì)接收文件并保存到指定的路徑。

0