服务端客户端的文件流式传输

在研究webservice的时候,发现文件流式的传输是基于socket的传输。
大致的流程是:
服务端客户端的通信->针对内容进行Stream的读取,并将数据放到buffer中->处理通信请求
另一接收端:针对传输过来的内容进行读取,用一个新的byte数组将内容存入。

下面是针对这一环节对文件流式处理展示,不包含通信过程。
客户端:

     /*** 取出单个文件,并以文件流的形式向服务端传送内容* @param Filename  文件名称,不包前缀* @param path 文件的具体地址*/public void sendSingleFile(String Filename,String path) {try {File file = null;File files = new File(path);File[] fs = files.listFiles();for (int i = 0; i < fs.length; i++) {if (fs[i].getName().endsWith(Filename + ".xml")) {//设置需要取的文件,也可以用正则来设置String singleFile = fs[i].getAbsolutePath(); //取到单个文件的路径file = new File(singleFile);if (file.isFile() && file.exists()) {InputStreamReader read = new InputStreamReader(new FileInputStream(file), "utf-8");//用FileReader  不可以指定编码,所以不用FileReader了。BufferedReader br = new BufferedReader(read);String lineText = new String();StringBuilder strBuf = new StringBuilder();SimpleDateFormat sf = new SimpleDateFormat("_yyyyMMdd_hhmmss"); //服务器获取文件后能看到文件接收的具体时间是什么时候生成的String pdate = sf.format(new Date());while ((lineText = br.readLine()) != null) {strBuf.append(lineText);}String[] addTimeFile = file.getName().split("\\.");System.out.println(strBuf + " " + addTimeFile[0] + pdate + "." + addTimeFile[1]);
//                        Socket文件流式传输
//                        service.getValue(strBuf + "\n\r", addTimeFile[0] + pdate + "." + addTimeFile[1]);  //服务器接收的内容,服务器发送经过处理后的文件名} else {System.out.println("找不到指定的文件");}}}} catch (Exception e) {System.out.println("读取文件内容出错");e.printStackTrace();}}

服务端:

 /**** @param fileContent* @param fileName*/public void getValue(String fileContent, String fileName) {try {String filePaths = "D:\\xxxx\\" + fileName;int temp = this.writeFile(filePaths, fileContent.getBytes("utf-8"));  //使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中。if (temp >= 0) {System.out.println("写入文件成功!");} else {System.out.println("写入文件失败!");}} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}}/*** 服务器的流式传输-服务器端接收后输出* @param filePaths* @param content* @return*/private int writeFile(String filePaths, byte[] content) {System.out.println("开始写入文件....");FileOutputStream os = null;try {os = new FileOutputStream(filePaths, true);os.write(content);os.flush();} catch (Exception e) {return -1;} finally {try {if (null != os) {os.close();}} catch (IOException E) {}}System.out.println("写入文件成功");os = null;return 0;}

服务端客户端的文件流式传输相关推荐

  1. C# TCP/IP客户端与服务端数据与文件的传输

    用C#写的 一个简单的TCP通信,主要的功能有: (1) 多个客户端与服务器间的数据交流 (2)可以实现群发的功能 (3)客户端与服务端可以进行文件的传输 主要用到的知识: TCP里的 socket ...

  2. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  3. 从MongoDB GridFS流式传输文件

    不久前,我在Twitter上发布了自己的最新作品,即从MongoDB GridFS传输文件进行下载(而不是将整个文件存储到内存中然后提供服务),这是我取得的一个小胜利. 我答应就此事写博客,但不幸的是 ...

  4. 读取csv文件 java_Java:逐步读取/流式传输CSV文件

    读取csv文件 java 我一直在做一些涉及读取CSV文件的工作,而我一直在使用OpenCSV ,而我的最初方法是逐行读取文件,解析内容并将其保存到地图列表中. 当文件的内容适合内存时,此方法有效,但 ...

  5. Java:逐步读取/流式传输CSV文件

    我一直在做一些涉及读取CSV文件的工作,而我一直在使用OpenCSV ,而我的最初方法是逐行读取文件,解析内容并将其保存到地图列表中. 当文件的内容适合内存时,此方法有效,但对于较大的文件来说是个问题 ...

  6. 流媒体服务器文件传输,mStream - 从任何地方流式传输音乐的个人流媒体服务器...

    mStream是一款免费的开源和跨平台个人音乐流媒体服务器,可让您在所有设备之间同步和流式传输音乐. 它由一个用NodeJS编写的轻量级音乐流媒体服务器组成; 您可以使用它将音乐从家用电脑流式传输到任 ...

  7. gstfileserver文件服务器,使用gst-rtsp-server流式传输H264文件

    请考虑我是GStreamer的初学者.我正在尝试使用gst-rtsp-server来传输记录的H264文件.所以我可以播放/暂停/寻找来自VLC播放器的视频. 这是我迄今所做的: 记录从IP摄像机的R ...

  8. 一个简单的完成端口(服务端/客户端)类

    一个简单的完成端口(服务端/客户端)类 作者:spinoza 翻译:麦子芽儿, POWERCPP(后面部分内容) 下载源代码 原文网址:http://www.codeproject.com/KB/IP ...

  9. grpc流式传输示例(c++)

    目录 grpc理解 流式传输方式 Attention grpc理解 grpc是结合protobuf的远程调用框架,服务端和客户端均支持同步和异步模式.同步模式下,服务器的service函数会阻塞,且当 ...

  10. QuickTime流式传输

    第一节 QuickTime流式传输 QT流是通过网络将视频从服务器发送到客户的传输方式.与文件传输不同,客户端边下载边播放,而不必等到下载完毕.服务器将视频内容分成包,通过网络发送出去:在接收端,包被 ...

最新文章

  1. dstat用法;利用awk求dstat所有列每列的和;linux系统监控
  2. Leetcode--781.森林中的兔子
  3. Quartz学习(一)
  4. LINUX下载编译libogg
  5. Fgui切割图集为散图
  6. 软件测试工程师面试技巧---问答篇
  7. 电脑重装系统后Win11扬声器无插座信息如何解决?
  8. MATLAB以符号形式表示门函数的傅里叶正反变换。
  9. 债券的即期收益率,到期收益率,远期收益率有什么区别?
  10. Place Holder 方法
  11. mysql优化 个人笔记 (mysql 主从复制 ) 非礼勿扰 -m11
  12. VSCode安装教程【Windows系统】
  13. 好评返现如何摆脱平台规则和流量限制
  14. c语言打印出水花数,四叶玫瑰数,五角星数等等的数字
  15. 烟草物流信息综合管理平台研究与应用——以H市卷烟厂烟草物流配送中心为例
  16. 我的电磁学讲义11:安培环路定理
  17. MySQL下载与安装、mysql服务启动与停止、mysql使用cmd命令行登录、SQLyog下载与安装,sqlyog登录与操作mysql
  18. ROS 公用包学习解析 usb_cam
  19. 网页视频播放器(easyplayer和vue-video-player的使用)
  20. 中国高效节能电机行业发展现状分析与前景战略规划建议报告2021-2027年

热门文章

  1. tp5 cache 子文件夹名称
  2. 京东php分销系统开源,2017Ecshop鸿宇小京东V7.2.3二次开发版分销多用户商城系统微信支...
  3. 梦想照进现实|CSDN 实体奖牌 第三期
  4. Polynomial Commitments代码实现【2】——lovesh/kzg-poly-commit
  5. 嵌入式开发板硬件操作入门学习8——单片机的引脚功能(51单片机为例)
  6. 大话Elasticsearch常用操作和核心原理
  7. 对冲基金小镇 鬼城_未来系统,代码寿命和网络鬼城
  8. 常识:如何从大陆拨打国际长途电话到境外的方法
  9. 补血良方 核桃红枣阿胶糕
  10. cbv本质,前后端交互编码方式,django模板使用的2种方式,模板语法