java - 有没有办法在一个请求中组合输出流和打印器?
问题描述
我必须通过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
不幸的是,这对我不起作用。通过这种方式,服务器将请求计为两个不同的输出。有没有办法结合两个输出流或将请求写入一个输出流?
解决方案
推荐阅读
- sql - SQL-如何连接 3 个表,但只能按两个表中的列分组
- c# - 如何解决 System.Net.Http.WinHttpException:无法建立与服务器的连接?
- ruby-on-rails - 如何使用 rspec 为通知消息编写测试用例
- ios - 如何在 soundcloud 登录/注册页面中更改我的应用名称?
- react-native - 如何通过数组循环单选按钮
- validation - 在 ruby on rails 中重置密码表单验证
- ios - tintColor 未在主题中更新为默认值
- javascript - THREE.JS - 使用 OrbitControls 时锁定 y 轴旋转
- rust - 是否可以让 Future::and_then 有条件地返回不同的期货?
- c# - 基于 light.enabled 控制运动。C#