java接收二进制数据_java-从套接字读取二进制数据

我正在尝试连接到服务器,然后向其发送HTTP请求(在这种情况下为GET).这个想法是请求一个文件,然后从服务器接收它.

它应同时适用于文本文件和二进制文件(例如imgs).我对文本文件没有任何问题,它可以完美工作,但是对二进制文件有一些麻烦.

首先,我声明一个BufferedReader(用于读取标题和文本文件)和一个DataInput流:

BufferedReader in_text = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

DataInputStream in_binary = new DataInputStream(

new BufferedInputStream(socket.getInputStream()));

然后,我用in_text读取标题,并发现它是文本文件还是二进制文件.如果是文本文件,我可以在StringBuilder中正确读取.如果是二进制文件,我声明一个byte [filesize]并存储in_binary的以下内容.

byte[] bindata = new byte[filesize];

in_binary.readFully(bindata);

而且它不起作用.我收到一个EOFException.

我以为in_binary可能仍在流的第一个位置,因此它尚未读取标头.因此,我捕获了标头的长度,并跳过了in_binary中的字节.

byte[] bindata = new byte[filesize];

in_binary.reset();

in_binary.skip(headersize);

in_binary.readFully(bindata);

而且还是一样.

可能会发生什么?

谢谢!

PD:我知道我可以使用URLConnection等.那不是问题.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web开发入门_Web开发人员和设计师的自由职业入门

web开发入门Learn how to get started with freelancing as a web developer and designer. Cara Bell shares lessons and tips she has learned from her years as a freelancer.了解如何以网络开发人员和设计师的身份开始自由职业。 卡拉贝尔(Cara Bell)分享了她从自由职业者…

leetcode1343. 大小为 K 且平均值大于等于阈值的子数组数目(队列)

给你一个整数数组 arr 和两个整数 k 和 threshold 。 请你返回长度为 k 且平均值大于等于 threshold 的子数组数目。 示例 1: 输入:arr [2,2,2,2,5,5,5,8], k 3, threshold 4 输出:3 解释:子数组 [2,5,5],[5,5,5] 和 [5,5,8…

二分查找递归和非递归方法分析

递归实现: 自己写的递归:多一个赋值操作,虽然可以得到正确的结果。但是比较难以理解。 问题:没有深刻理解递归返回值。return会在递归调用到最后,在递归结束的地方,会将返回值一层一层返回给方法&#xff0…

BaseYii_autoload

BaseYii_autoload 判断是否是classMap还是命名空间的 然后 转换成 绝对路径 include 文件  public static function autoload($className){      //classMap 一般都是类库 官方 或者自定义类映射 if (isset(static::$classMap[$className])) {$classFile static::$cla…

sasl java_javaSASL_SSL帐号密码方式访问kafka

java SASL_SSL帐号密码 方式访问 kafkaProducer Java Sample java生产者:Properties props new Properties();props.put("bootstrap.servers","*******:9092,*******:9092");props.put("acks", "all");//props.put("retries&quo…

RedHat5.2下Linux Oracle 10g ASM 安装详细实录-第二篇-ASM安装

五、安装ASM 1、在oracle网站下载支持包:http://www.oracle.com/technology ... x/asmlib/rhel5.html 2、根据linux内核下载相应的asm安装包:根据uname –a查看内核(黄底红字为内核):$ uname -aLinux L-DB-3-6 2.6.18-92.el5 #1 S…

心理学专业转用户体验_用心理学设计奇妙的用户体验

心理学专业转用户体验We are all influenced by the world around us and by how our minds work. Designers need to be able to understand this and design for it.我们所有人都受到周围世界以及我们思维方式的影响。 设计师需要能够理解这一点并为此进行设计。 In this ta…

leetcode面试题 16.04. 井字游戏

设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ",“X"和"O"组成,其中字符” "代表一个空位。 以下是井字游戏的规则: 玩家轮流将字符放入空位&#x…

JAVA基础_修饰符

引言:Java的修饰符根据修饰的对象不同,分为类修饰符、方法修饰符、变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符。访问控制存在的原因:a、让客户端程序员无法触及他们不应该触及的部分 b、允许库设计者可以改…

etcd与mysql_etcd数据库备份与还原

1. 备份etcd1.1 手动备份数据etcdctl backup --data-dir /var/lib/etcd/default.etcd --backup-dir 备份目录1.2 脚本备份数据使用etcd自带命令etcdctl进行etc备份,脚本如下:#!/bin/bashdate_timedate %Y%m%detcdctl backup --data-dir /var/lib/etcd/de…

iOS https双向配置

只需要服务器验证手机端的童鞋可以点开以下链接【ios 单向配置https】 http://www.cnblogs.com/OC888/p/6560602.html 兜兜转转弄了一个星期,网上的大多数demo都下来过一遍了,各种偏方都试了,终于配置好了双向配置,网上大多数标题…

创业-程序员独自5大思维障碍

程序员是最容易创业的,或者说是创业成本最低的职业。只要有一台电脑和投入自己的时间,就可以写出畅销天下的软件,这是每个程序员的梦想。更何况世界首富常年以来就是程序员出身的比尔盖茨,这也刺激了更多的程序员走上创业之路。 …

leetcode1144. 递减元素使数组呈锯齿状

给你一个整数数组 nums&#xff0c;每次 操作 会从中选择一个元素并 将该元素的值减少 1。 如果符合下列情况之一&#xff0c;则数组 A 就是 锯齿数组&#xff1a; 每个偶数索引对应的元素都大于相邻的元素&#xff0c;即 A[0] > A[1] < A[2] > A[3] < A[4] >…

typescript_清洁架构的TypeScript刺

typescriptby Warren Bell沃伦贝尔(Warren Bell) 清洁架构的TypeScript刺 (A TypeScript Stab at Clean Architecture) 剥洋葱皮的方法不止一种。 (More than one way to skin an onion.) 清洁建筑 (Clean Architecture) There are many videos and articles explaining clean…

星辰小队针对于软件“星遇”的第二次10天冲刺——第10天

日期&#xff1a;2019.6.6 博客期&#xff1a;099 星期四 呃~确实有一部分的功能来不及实现了&#xff0c;针对目前已经实现的功能开始整合&#xff0c;用户界面进行美化&#xff0c;把多于没用的界面和代码类删除掉&#xff0c;制作本软件的叙述性文件和相关文档&#xff0c;根…

mybatis的select、insert、update、delete语句

一、select <!-- 查询学生&#xff0c;根据id --> <select id"getStudent" parameterType"String" resultMap"studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX, ST.STUDENT_BIRTHDAY, ST.CLASS_I…

appium java简单实例_Appium创建一个Note的实例

近来通过Appium&#xff0c;Robotium等几个框架去了解移动平台自动化测试。Appium官方实例是使用ContactManager.apk&#xff0c;而Robotium使用的是SDK自带的Notepad.apk&#xff0c;为了方便比较&#xff0c;在了解Appium的同时把实例修改成跟Robotium一致的Notepad.apk并记录…

Lync Server 2013无法共享PPT故障排错处理

前段时间帮助朋友看了一个关于Lync Server 2013无法共享PPT的问题&#xff0c;共享PPT时报如下错误&#xff1a; 日志截图如下&#xff1a; 原因如下前端服务器未关联Ofice web Application服务器&#xff0c;关联即可&#xff0c;如下&#xff1a; 关联完成后&#xff0c;如下…

leetcode733. 图像渲染(bfs)

有一幅以二维整数数组表示的图画&#xff0c;每一个整数表示该图画的像素值大小&#xff0c;数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值&#xff08;行 &#xff0c;列&#xff09;和一个新的颜色值 newColor&#xff0c;让你重新上色这幅图像…

chrome扩展程序_如何创建Chrome扩展程序

chrome扩展程序by Erika Tan谭咏麟 如何创建Chrome扩展程序 (How to create a Chrome Extension) In this article, I will be teaching you how to make a Chrome Extension of your own. I’m basing it off of lessons learned while creating TalkToMe, a Chrome Extensio…