How to transfer files to another server using Java?

To transfer files to another server, you can use the Socket class in Java for network communication. Here is an example code demonstrating how to use Socket to transfer files.

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();
        }
    }
}

In the example code above, you will need to replace serverIP with the IP address of the target server, serverPort with the port number of the target server, and filePath with the path of the file to be transferred.

Next, on the target server, you can use similar code to receive the file.

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();
        }
    }
}

In the example code above, you need to replace serverPort with the port number that the server is bound to, and savePath with the path where the files will be saved.

When you run FileTransferClient, it will transfer the file to the destination server, where the FileTransferServer will receive and save the file to the specified path.

bannerAds