如何将文件从服务器发送到客户端,反之亦然。 “使用纯Java代码解决方案将更加有用,而无需使用外部jar。”

问题描述 投票:0回答:1

->我正在使用JAX-RS使用RESTful Web服务。我们正在使用应用程序服务器而不是Web服务器。

->我想从服务器向客户端发送文件,反之亦然。用谷歌搜索相同的内容,但是我发现的代码不符合我的要求。(文件可以是任何类型,即docs,txt,jpg,excel..ect。)

->如何通过网络发送字节流?我知道有可能,但是如何?

->任何人都可以附上任何有关客户端代码和服务器端代码的示例,或者如果有任何实现方法的想法,谢谢解决方案和支持。

java web-services jersey jax-rs
1个回答
0
投票

我认为这会起作用:

FileClass:

import java.io.File;
import java.io.Serializable;

public class FileClass implements Serializable {
private File file;
public FileClass(String filePath) {
    if (new File(filePath).exists()) {
        file = new File(filePath);
    } else {
        System.out.println("Error");
    }
}
}

服务器:

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

public class Server {

private static int port = 8888;
private static ServerSocket serverSocket;
private static Socket socket;

public static void main(String[] args) {

    try {
        serverSocket = new ServerSocket(port);
        socket = serverSocket.accept();

        InputStream inputStream = new BufferedInputStream(socket.getInputStream());
        ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
        File newFile = (File) objectInputStream.readObject();


    } catch (IOException e) {
    } catch (ClassNotFoundException e) {
    }
}
}

客户:

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

public class Main {
private static int port = 8888;
private static Socket socket;

public static void main(String[] args) {
    String path = "YourPath";
    FileClass fileClass = new FileClass(path);
    try {
        socket = new Socket("localhost", port);
        OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream());
        ObjectOutputStream objectInputStream = new ObjectOutputStream(outputStream);
        objectInputStream.writeObject(fileClass);
        objectInputStream.flush();
        objectInputStream.close();
    } catch (IOException e) {
    }
}
}
© www.soinside.com 2019 - 2024. All rights reserved.