黑马程序员技术交流社区

标题: 关于客户端上传文件的问题 [打印本页]

作者: mk7    时间: 2013-6-12 17:07
标题: 关于客户端上传文件的问题
本帖最后由 mk7 于 2013-6-13 20:25 编辑
  1. //指定服务端主机和端口
  2. Socket socket = new Socket("127.0.0.1", 10017);

  3. //指定所要上传文件的目录
  4. FileInputStream fis = new FileInputStream("f:\\1.mp3");
  5. OutputStream os = socket.getOutputStream();

  6. //上传文件
  7. byte[] buf = new byte[1024];
  8. int len = 0;
  9. while((len=fis.read(buf))!=-1)
  10. os.write(buf);

  11. //关闭输出流
  12. socket.shutdownOutput();

  13. //读取并打印服务端的反馈信息
  14. InputStream in = socket.getInputStream();
  15. len = in.read(buf);
  16. System.out.println(new String(buf, 0, len));
复制代码
以上是客户端上传文件的一段代码,文件上传完成后使用了shutdownOutput()方法关闭输出流,接着读取服务端的反馈信息。
如果读取完服务端反馈信息后想要再向服务端发送一段信息,但是已经关闭了输出流,应该怎么办呢?重新用socket.getOutputStream()
来获取新的输出流行不行?


作者: 曹世明    时间: 2013-6-12 17:30
想要再向服务端发送一段信息,应再次获取socket流中输出流
OutputStream os2 = socket.getOutputStream();
通过
byte[] buf = new byte[1024];
int len = 0;
while((len=fis.read(buf))!=-1)
os2.write(buf);

上传数据!


作者: 孙百鑫    时间: 2013-6-13 06:19
楼主您好!如果问题得到解决请将题目改成"已解决"
编辑文章-->修改 如果问题没有得到解决请继续发问谢谢您的配合{:soso_e100:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2