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がファイルを受信して指定されたパスに保存されます。

bannerAds