黑马程序员技术交流社区

标题: IO流一直没搞好,求大神们来指点一下代码 [打印本页]

作者: gainn    时间: 2015-6-14 19:21
标题: IO流一直没搞好,求大神们来指点一下代码
本周论坛作业题那个上传图片文件那题,最后一步Server端给出反馈信息老是为null,也不知道哪里不对,只能求教大神了

Server端:
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedOutputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;

  8. public class UploadServerDemo {

  9.         public static void main(String[] args) throws IOException {
  10.                 ServerSocket ss = new ServerSocket(10086);

  11.                 // 监听客户端对象
  12.                 Socket s = ss.accept();

  13.                 // 获取输入流
  14.                 BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
  15.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("上传图片.jpg"));

  16.                 byte[] bys = new byte[2048];
  17.                 int len = 0;
  18.                 while ((len = bis.read(bys)) != -1) {
  19.                         bos.write(bys,0,len);
  20.                         bos.flush();
  21.                 }

  22.                 // 给出反馈,获取输出流
  23.                 PrintWriter out = new PrintWriter(s.getOutputStream());
  24.                 out.println("文件上传成功");

  25.                 // 释放资源
  26.                 bos.close();
  27.                 s.close();
  28.                 ss.close();
  29.         }
  30. }
复制代码


Client端:
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedOutputStream;
  3. import java.io.BufferedReader;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.Socket;
  8. import java.util.Scanner;

  9. public class UploadClientDemo {

  10.         public static void main(String[] args) throws IOException {
  11.                 //设置Socket
  12.                 Socket s = new Socket("192.168.16.100",10086);
  13.                
  14.                 System.out.println("请输入上传图片地址:");
  15.                 Scanner sc = new Scanner(System.in);
  16.                 String path = sc.nextLine();
  17.                 sc.close();
  18.                
  19.                 //封装输入输出流
  20.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
  21.                 BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());
  22.                
  23.                 //传递数据
  24.                 byte[] bys = new byte[2048];
  25.                 int len = 0;
  26.                 while ((len = bis.read(bys))!= -1) {
  27.                         bos.write(bys, 0, len);
  28.                         bos.flush();
  29.                 }
  30.                 s.shutdownOutput();
  31.                
  32.                 BufferedReader brServer = new BufferedReader(new InputStreamReader(
  33.                                 s.getInputStream()));
  34.                 String server = brServer.readLine();
  35.                 System.out.println("server反馈信息是:" + server);

  36.                 // 释放资源
  37.                 bis.close();
  38.                 s.close();
  39.         }
  40. }
复制代码

作者: 米江波    时间: 2015-6-14 21:39
BufferedInputStream bis = new BufferedInputStream(s.getInputStream());这一步已经错了  需要转换流  inputstreamreader
作者: mocun    时间: 2015-6-14 21:50
大神很厉害耶

作者: gainn    时间: 2015-6-14 21:59
米江波 发表于 2015-6-14 21:39
BufferedInputStream bis = new BufferedInputStream(s.getInputStream());这一步已经错了  需要转换流  i ...

我是上传字节流文件,不用转换流……问题也没出在这里,而是文件完毕后服务器端无法返回的"文件上传成功"的提示,客户端接收到的是返回提示是null……
作者: 米江波    时间: 2015-6-14 22:18
哦哦 看错了呢  汗 丢大发了
作者: 米江波    时间: 2015-6-15 00:08
// 给出反馈,获取输出流
                PrintWriter out = new PrintWriter(s.getOutputStream());
                out.println("文件上传成功");     弄到现在  原来发现是没刷新 服了 :@
作者: fc734228945    时间: 2015-6-15 09:10
大神,大腿给我抱抱呗
作者: gainn    时间: 2015-6-15 15:16
fc734228945 发表于 2015-6-15 09:10
大神,大腿给我抱抱呗

大腿已断,求勿扰:Q
作者: 给点正能量    时间: 2015-6-15 15:42
看不懂啊
作者: songyu    时间: 2015-6-15 15:57
我一直搞不清什么是服务器端,什么是客户端呢
作者: zhangjnia    时间: 2015-6-15 16:06
服务器没刷新数据




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