黑马程序员技术交流社区

标题: 【上海校区】JavaTCP-上传文本文件 [打印本页]

作者: 不二晨    时间: 2019-2-22 16:55
标题: 【上海校区】JavaTCP-上传文本文件
基于聊天客户端的基础上的文件(TXT文件)传输

客户端代码:

public class UploadClient {

        public static void main(String[] args) throws UnknownHostException, IOException {
                // TODO Auto-generated method stub
                //1,创建socket客户端对象
                Socket s = new Socket("localhost",10005);
                //2,读取本地文件
                BufferedReader bufr = new BufferedReader(new FileReader("C:\\新建文件夹\\client.txt"));
                //3,Socket流
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
               
                String line = null;
                while((line=bufr.readLine())!=null){
                       
                        out.println(line);
                       
                }
                //告诉服务端,客户端写完了
                s.shutdownOutput();
                //4,读取服务端返回的上传成功对象
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String str = bufIn.readLine();
                System.out.println(str);
                //关闭资源
                bufr.close();
                s.close();
        }

}

服务端代码:

public static void main(String[] args) throws UnknownHostException, IOException {
                // TODO Auto-generated method stub
                //1,
                ServerSocket ss = new ServerSocket(10005);
                //2,获取Socket对象
                Socket s = ss.accept();
                //获取IP
                System.out.println(s.getInetAddress().getHostAddress()+"....conected");
                //3,获取Socket读取流,并装饰
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
               
                //4,写入文件
                BufferedWriter bufw = new BufferedWriter(new FileWriter("C:\\新建文件夹\\server.txt"));
               
                String line = null;
                while((line=bufIn.readLine())!=null){
                       
                        bufw.write(line);
                        bufw.newLine();//换行
                        bufw.flush();//刷新流
                }
               
               
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
                out.println("上传成功");
                bufw.close();
                s.close();//关闭客户端
                ss.close();//关闭服务端
        }

要注意的是TCP传输中,一定要先运行服务端再运行客户端。
---------------------
【转载,仅作分享,侵删】
作者:lzq1326253299
原文:https://blog.csdn.net/lzq1326253299/article/details/86526556
版权声明:本文为博主原创文章,转载请附上博文链接!


作者: 不二晨    时间: 2019-2-26 15:32
奈斯,感谢分享




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