黑马程序员技术交流社区

标题: 【记录】代码练习-上传文件 [打印本页]

作者: Kevin.Kang    时间: 2015-8-10 14:39
标题: 【记录】代码练习-上传文件
本帖最后由 Kevin.Kang 于 2015-8-10 14:41 编辑

客户端:
  1. package com.kxg_10;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.net.Socket;

  7. public class ClientDemo {
  8.         public static void main(String[] args) throws IOException {
  9.                 Socket s = new Socket("10.164.22.254", 48264);

  10.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
  11.                                 "a.txt"));

  12.                 BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());

  13.                 byte[] bys = new byte[1024];
  14.                 int len = 0;
  15.                 while ((len = bis.read(bys)) != -1) {
  16.                         bos.write(bys, 0, len);
  17.                 }

  18.                 bis.close();
  19.                 bos.close();
  20.         }
  21. }
复制代码

服务器端:
  1. package com.kxg_10;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;

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

  11.                 Socket s = ss.accept();

  12.                 BufferedOutputStream bos = new BufferedOutputStream(
  13.                                 new FileOutputStream("Copy.txt"));

  14.                 BufferedInputStream bis = new BufferedInputStream(s.getInputStream());

  15.                 byte[] bys = new byte[1024];

  16.                 int len = 0;
  17.                 while ((len = bis.read(bys)) != -1) {
  18.                         bos.write(bys, 0, len);
  19.                 }

  20.                 s.close();
  21.                 bos.close();

  22.         }
  23. }
复制代码




作者: Kevin.Kang    时间: 2015-8-10 15:38
带有反馈版本:
客户端:
  1. package com.kxg_10;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.FileInputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.net.Socket;

  8. public class ClientDemo {
  9.         public static void main(String[] args) throws IOException {
  10.                 Socket s = new Socket("10.164.22.254", 48264);

  11.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
  12.                                 "a.txt"));

  13.                 BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());

  14.                 byte[] bys = new byte[1024];
  15.                 int len = 0;
  16.                 while ((len = bis.read(bys)) != -1) {
  17.                         bos.write(bys, 0, len);
  18.                         // 需要刷新,不然数据写不进去
  19.                         bos.flush();
  20.                 }

  21.                 // 通知服务器已经完成了传输
  22.                 s.shutdownOutput();

  23.                 InputStream bis2 = s.getInputStream();
  24.                 byte[] bys2 = new byte[1024];
  25.                 int len2 = bis2.read(bys2);
  26.                 String str = new String(bys2, 0, len2);
  27.                 System.out.println(str);

  28.                 bis.close();
  29.                 s.close();
  30.         }
  31. }
复制代码
服务器端:
  1. package com.kxg_10;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.OutputStream;
  7. import java.net.ServerSocket;
  8. import java.net.Socket;

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

  12.                 Socket s = ss.accept();

  13.                 BufferedOutputStream bos = new BufferedOutputStream(
  14.                                 new FileOutputStream("Copy.txt"));

  15.                 BufferedInputStream bis = new BufferedInputStream(s.getInputStream());

  16.                 byte[] bys = new byte[1024];

  17.                 int len = 0;
  18.                 while ((len = bis.read(bys)) != -1) {
  19.                         bos.write(bys, 0, len);
  20.                 }

  21.                 OutputStream bos2 = s.getOutputStream();
  22.                 bos2.write("上传成功".getBytes());

  23.                 s.close();
  24.                 bos.close();

  25.         }
  26. }
复制代码





作者: 耀阳圣尊    时间: 2015-8-10 16:00
不错,赞一个!




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