Java网络编程-文件上传案例-客户端 wongshua 2020-03-23 12:41:33 Java网络编程## 文件上传案例### 客户端- 目的:读取本地文件,上传到服务器,读取服务器回写的数据- 明确: - 数据源:d:\\\\1.jpg - 目的地:服务器- 实现步骤: 1. 创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源 2. 创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号 3. 使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象 4. 使用本地字节输入流FileInputStream对象中的read方法读取本地文件 5. 使用网络字节输出流OutputStream对象的write方法,把读取到的文件上传到服务器 6. 使用Socket中的方法getInputStream,获取网络字节输入流InputStream对象 7. 使用网络字节输出流InputStream对象中的方法read读取服务器回写的数据 8. 释放资源(FileInputStream,Socket)```java import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class TCPClient { public static void main(String[] args) throws IOException { //1. 创建一个本地字节输入流FileInputStream对象,构造方法中绑定要读取的数据源 FileInputStream fis = new FileInputStream("d:\\\\1.jpg"); //2. 创建一个客户端Socket对象,构造方法中绑定服务器的IP地址和端口号 Socket socket = new Socket("127.0.0.1",8888); //3. 使用Socket中的方法getOutputStream,获取网络字节输出流OutputStream对象 OutputStream os = socket.getOutputStream(); //4. 使用本地字节输入流FileInputStream对象中的read方法读取本地文件 int len =0; byte[] bytes = new byte[1024]; while ((len = fis.read(bytes)) != -1) { //5. 使用网络字节输出流OutputStream对象的write方法,把读取到的文件上传到服务器 os.write(bytes,0,len); } //6. 使用Socket中的方法getInputStream,获取网络字节输入流InputStream对象 InputStream is = socket.getInputStream(); //7. 使用网络字节输出流InputStream对象中的方法read读取服务器回写的数据 while ((len = is.read(bytes)) != -1) { System.out.println(new String(bytes,0,len)); } //8. 释放资源(FileInputStream,Socket) fis.close(); socket.close(); } }``` 相關文章: Java ==,equals ,hashCode 的比较 java 8 stream reduce详解和误区 那些年,我们踩过的 Java 坑 Java-POI-Excel导出 包含跨行跨列 Excel表格样式格式化。 都说 Java 反射效率低,你知道原因在哪里么(好好看) Java 10大装B写法,看完可以出去吹一波了! Java 10 大装 B 写法,看完可以出去吹牛逼了! Java 14 新特性 真没想到!Java 导出 Excel 表格会变得如此简单优雅 如何从 Java 8 升级到 Java 12,升级收益及问题处理技巧 Java 基础:循环结构 Java~类反射~JUnit和注解 Java 14 中令人期待的五大新特性! Java 老矣,尚能饭否?2020 Java 生态系统报告出炉! java 线程及线程池解析 Java 冻结或解除冻结Excel中的行和列 今天 Java 14 正式发布了!放弃 Java 8 行吗? Java 状态报告:Java 8 占主导,Java 11 不算多 视频教程+案例,java、python、前端全套 JAVA 8与JAVA 11到底该怎么选? Java 线程不安全分析及其解决方法 消灭 Java 代码的“坏味道” 03.02 把你的空闲时间利用起来,java,python有了这些,你也可以学会 03.01 Java 抽象类与模板设计模式详解 02.28 Java 实现数据表与简单Java类映射转换 2020 年 Java 技术报告:半数开发者仍在使用 Java 8「转」 02.21 2020 年 Java 技术报告:半数开发者仍在使用 Java 8「转」 Java 加密 「Java」分享一个使用DES加密和解密的算法 Java 基础(一) 01.28 Java 14 令人期待的 5 大新特性,打包工具终于要来了 java 开发与快递鸟对接的推送接口 JAVA 2020款山地车盘点 01.11 JAVA 2020款山地车盘点 JAVA 动态代理讲解及实现。面试官咱们换下一个问题。我还行 2020 年九大顶级 Java 框架 Java 程序员,你真的会写Java文档注释(Java Doc Comments)吗 java.lang.String 的 + 号操作到底做了什么事情? Java 9 ← 2017,2019 → Java 13,Java 两年来都经历了什么? 11.27 Java 9 ← 2017,2019 → Java 13 ;来看看Java两年来的变化 大家都说 Java 反射效率低,你知道原因在哪里么 「转」 Java 无界阻塞队列 DelayQueue 入门实战 浅入浅出 Java 排序算法 专业第(3)课-Java 基本数据类型 04.03 Oracle 最后通牒:要 Java 8 更新先交钱! Java IDE的历史变迁及idea的使用 小米太无耻了。 蹭热点!说说我理解的手机包装盒事件。 苹果公司正式发布iPhone SE二代手机 华为河图、麒麟芯片和鸿蒙OS三驾马车并行?华为生态建设布局深远 小米高管表示,四千毫安时 5G 手机,和三千多毫安时 4G 手机一样 5G画风变了:麒麟985落地首跑,荣耀坐上开往高端的「地铁」 旗舰手机标配Wifi 6 换Wifi 6路由器的时机到了吗? 2020年5G手机卖不动?继苹果砍单25%之后,华为小米纷纷跟砍? 干翻华为P40系列 荣耀30也玩中 程序员辞互联网工作,跨行传统上市公司,上班第1天就蒙了 苹果发布新款iPhoneSE,3299元起售 我很纠结:我究竟适不适合做亚马逊电商?看了这三条你就知道了 请仔细阅读,关于跨境电商你想知道的都在这儿 骗子手段太“精明”:商家赔了货物又赔款,亚马逊平台骗术大揭秘 做跨境电商这么多年,今天才知道给国外客户发文件原来这么简单 值得收藏!三类卖家三种选品方案,总有适合你的一个…… 万万没想到!亚马逊平台上面卖床单竟营收一个亿!你还在等什么? 做店铺这么多年,今天才知道我的listing突然被封,竟是因为…… 亚马逊小白看过来!请采纳这些:亚马逊选品和运营的小建议 亚马逊卖家如何爆单?跨境精细化运营攻略必看 不收保证金、入住费、年费,还免三个月佣金,我也想入驻这个平台 马云终于要辞职了,留下的话句句触动人心 等等,明年5G手机将迎来大降价 微信公开课PRO版2019正在进行时,往届各自都有什么黑科技 推出「信任分」升级「闪购」,美团本地生活这盘棋有多大? 5G我们超越了6G我们也将领先! 美国为什么会害怕失去5G领导地位呢 界读|华为:帮助英国共渡疫情难关,无端批评令英国蒙受损失 为什么华为今天可以傲视群雄,在世界上立于不败之地? 血战「在线办公」,阿里、腾讯、字节、华为的底牌与大杀器 2020年最强拍照旗舰来了 华为P40系列多项业界首创 香! 今天聊一聊直播 通过直播赚钱不容易,既要豁得出去,又要端得起来 AI和自动化技术联手,最终会让60%的工人失去现有的饭碗。 这个网还能不能好好上了?今日全球IPv4地址正式耗尽 12306系统不行?内行人告诉你它有多牛,阿里腾讯高手去了也膜拜 有内幕?美国防部授与微软百亿云合同,亚马逊不满发起诉讼 未来之芯--RISC-V总部从美国迁往瑞士,华为、阿里是其成员 神话还能继续吗?几度过山车,比特币半年来首次跌破7000美元 刘强东卸任后,突然宣布一个“好消息”,让马云措手不及! 苹果的疯狂其实从未停止,AirPower或将重新启航