JavaTCP上传文本文件代码

 更新时间:2019年02月02日 10:16:18   作者:凌晨两点半的太阳v  
今天小编就为大家分享一篇关于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传输中,一定要先运行服务端再运行客户端。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 详解springboot和vue前后端分离开发跨域登陆问题

    详解springboot和vue前后端分离开发跨域登陆问题

    这篇文章主要介绍了详解springboot和vue前后端分离开发跨域登陆问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 浅谈StringEntity 和 UrlEncodedFormEntity之间的区别

    浅谈StringEntity 和 UrlEncodedFormEntity之间的区别

    这篇文章主要介绍了StringEntity 和 UrlEncodedFormEntity之间的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • GateWay动态路由与负载均衡详细介绍

    GateWay动态路由与负载均衡详细介绍

    这篇文章主要介绍了GateWay动态路由与负载均衡,GateWay支持自动从注册中心中获取服务列表并访问,即所谓的动态路由
    2022-11-11
  • RPC框架之Thrift的入门教程

    RPC框架之Thrift的入门教程

    Thrift是一个跨语言的服务部署框架,主要用于各个服务之间的RPC通信,支持跨语言,下面小编就来和大家讲讲Thrift框架的具体使用,希望对大家有所帮助
    2023-10-10
  • 关于解决雪花算法生成的ID传输前端后精度丢失问题

    关于解决雪花算法生成的ID传输前端后精度丢失问题

    这篇文章主要介绍了关于解决雪花算法生成的ID传输前端后精度丢失问题,雪花算法生成的ID传输到前端时,会出现后三位精度丢失,本文提供了解决思路,需要的朋友可以参考下
    2023-03-03
  • Java中的跨域和@CrossOrigin注解的作用详解

    Java中的跨域和@CrossOrigin注解的作用详解

    这篇文章主要介绍了Java中的跨域和@CrossOrigin注解的作用详解,跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制,需要的朋友可以参考下
    2023-12-12
  • SpringBoot整合Log4j2实现自定义日志打印失效的原因及解决

    SpringBoot整合Log4j2实现自定义日志打印失效的原因及解决

    本文给大家介绍了关于SpringBoot项目整合Log4j2实现自定义日志打印失效原因及解决办法,主要的原因是因为SpringBoot的logback包的存在,文中通过图文给大家了详细解决方法,需要的朋友可以参考下
    2024-01-01
  • Arrays.sort如何实现降序排序

    Arrays.sort如何实现降序排序

    这篇文章主要介绍了Arrays.sort如何实现降序排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Java设计模式之备忘录模式

    Java设计模式之备忘录模式

    这篇文章主要介绍了Java设计模式之备忘录模式,备忘录模式(Memento Pattern),属于行为型设计模式,目的是用于保存一个对象在某一时刻的状态,以便于在将来某个时刻根据此状态恢复该对象,需要的朋友可以参考下
    2023-12-12
  • Java用Cookie限制点赞次数(简版)

    Java用Cookie限制点赞次数(简版)

    最近做了一个项目,其中有项目需求是,要用cookie实现限制点赞次数,特此整理,把实现代码分享给大家供大家学习
    2016-02-02

最新评论