->我正在使用JAX-RS使用RESTful Web服务。我们正在使用应用程序服务器而不是Web服务器。
->我想从服务器向客户端发送文件,反之亦然。用谷歌搜索相同的内容,但是我发现的代码不符合我的要求。(文件可以是任何类型,即docs,txt,jpg,excel..ect。)
->如何通过网络发送字节流?我知道有可能,但是如何?
->任何人都可以附上任何有关客户端代码和服务器端代码的示例,或者如果有任何实现方法的想法,谢谢解决方案和支持。
我认为这会起作用:
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) {
}
}
}