我必须通过Java中的套接字进行文件传输(在我的情况下为pdf),以进行作业。通常我要求发送文本并返回文本,但是这次我必须通过套接字发送文件。在调查中,我发现文件传输是通过Fileinput(output)streams进行的。我的问题是,对服务器的请求必须看起来像这样:
File file = new File(pathToFile);
Pirntwriter out = new PrintWriter(Socket s.getOutputStream());
Outputstream outFile = s.getOutputStream();
int count
out.write("user file\r\n"
+ file.getName()+"\r\n"
+ file.length()+"\r\n"
+ "body\r\n");
// send file but im not sure how
byte[] buffer = new buffer with size of file.length()
while ((count = in.read(buffer)) > 0){
outFile.write(buffer, 0, count);
}
out.flush
outFile.flush
不幸的是,这对我不起作用。这样,服务器会将请求计为两个不同的输出。有没有一种方法可以将两个Outputstream组合在一起或将请求写入一个OutputStream中?