黑马程序员技术交流社区

标题: 大家帮我看看代码错在哪里了 [打印本页]

作者: 张明    时间: 2012-10-22 23:40
标题: 大家帮我看看代码错在哪里了
  1. //客户端代码
  2. public class Demo1Client {
  3. public static void main(String[] args) throws IOException {
  4. Socket s = new Socket(InetAddress.getByName("127.0.0.1"), 10086);
  5. OutputStream os = s.getOutputStream();
  6. FileInputStream fis = new FileInputStream(
  7. "D:\\workspace\\day25_HomeWork\\aaa\\MrOCC.jpg");
  8. byte[] bys = new byte[1024];
  9. int len = 0;
  10. while ((len = fis.read(bys)) != -1) {
  11. os.write(bys, 0, len);
  12. }
  13. fis.close();
  14. s.close();
  15. }
  16. }
复制代码
  1. //服务器端
  2. public class Demo1Server {
  3. public static void main(String[] args) throws IOException {
  4. ServerSocket ss = new ServerSocket(10086);
  5. Socket s = ss.accept();
  6. InputStream is = s.getInputStream();

  7. FileOutputStream fos = new FileOutputStream(
  8. "D:\\workspace\\day25_HomeWork\\bbb\\MrOCC.jpg");

  9. byte[] bys = new byte[1024];
  10. int len = is.read(bys);
  11. while ((len = is.read(bys)) != -1) {
  12. fos.write(bys, 0, len);
  13. }
  14. fos.close();
  15. s.close();
  16. ss.close();
  17. }
  18. }
复制代码
直接复制的代码,导包省了,我的思路就是首先图片要转成字节流,字节流上传到服务器端,服务器收到了将直接流写会文件
我现在的代码不成功,自己改了改后有时图片只有部分显示,这说明上传是没问题了,是不是读写出错了?
大家帮忙看看吧


作者: fdiskfix    时间: 2012-10-23 21:17
int len = is.read(bys); //去掉这一行的read,因为下面已经read过了
while ((len = is.read(bys)) != -1) {

int len = 0;
while ((len = is.read(bys)) != -1) {





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