首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么InputStreamReader无法读取websocket包的内容?

InputStreamReader是Java中用于读取字符流的类,它通常用于读取文本文件或网络流。然而,WebSocket是一种基于TCP的协议,它使用二进制数据帧进行通信,而不是纯文本。

由于InputStreamReader是用于读取字符流的,它无法直接处理二进制数据。当尝试使用InputStreamReader读取WebSocket包的内容时,它会将二进制数据解析为字符数据,导致数据损坏或乱码。

要读取WebSocket包的内容,应该使用专门用于处理二进制数据的类,例如InputStream或ByteBuffer。这些类可以直接读取和处理二进制数据,而不会引起数据损坏或乱码。

在Java中,可以使用javax.websocket包提供的WebSocket API来处理WebSocket通信。通过使用WebSocket API,可以轻松地读取和处理WebSocket包的内容,而不需要使用InputStreamReader。

总结起来,InputStreamReader无法读取WebSocket包的内容是因为它是用于读取字符流的,而WebSocket使用的是二进制数据帧进行通信。要处理WebSocket包的内容,应该使用专门用于处理二进制数据的类或WebSocket API。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么SpringBoot jar文件读取不到?

菜菜轻声嘀咕:「在本地 IDEA 程序跑着没问题,能够成功读取资源文件,单元测试都跑过了,为啥部署到测试环境就不好使了呢?」 菜菜边嘀咕边开启了 Debug 模式。...定义资源匹配规则,会在所有的JAR根目录下搜索指定文件 String matchPattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX.../cool/zs/cert_zs.key 分析原因 resource.getFile().getPath().split("/") ,Spring 没办法通过 File 形式访问 jar 里面的文件...3 菜菜侃大山 1、如何获取 SpringBoot jar 指定文件夹下资源文件子目录?...菜菜曰:SpringBoot 没办法通过 File 形式访问 jar 里面的文件,借助 resource.getURL().getPath() 获取当前资源对应URL路径得以解决。

1.3K20

java中jar类访问jar内部资源文件路径和获得读取资源文件内容问题

在大数据开发和java web开发中,我们有时会在程序中读取一些资源文件内容。...当我们在本地运行调试时候是没有任何问题,但是当我们将程序打成jar包上传到集群中后运行时,发现报错:“找不到配置文件路径”。虽然jar中确实存在配置文件,但是还是读取不到。...相关解决方法可以参考以下相关资料:  java中jar类访问jar内部资源文件路径问题: http://blog.csdn.net/mm_bit/article/details/50372229...获取jar内部资源文件: http://blog.csdn.net/luo_jia_wen/article/details/50057191 【解惑】深入jar:从jar读取资源文件: http...://www.iteye.com/topic/483115  jar读取资源配置文件,jar内包外,以及读取目录方法: http://blog.csdn.net/T1DMzks/article/

9.2K20

从一个被Tomcat拒绝漏洞到特殊内存马

下找到tomcat-websocket.jar 找到WsFilter代码,在doFilter中插入一些代码 我这里是简单回显执行命令,也可以是一些其他逻辑 package org.apache.tomcat.websocket.server...Tomcat服务,然后才能替换依赖库 如果思路一直放在如何修改被占用依赖库,那么这个问题是无解 但我发现了一种巧妙方法,来自于Tomcat对Jar特殊加载顺序 (这里是Windows Tomcat...8测试环境,其他环境不确定有这样顺序) 如果我在Tomcat/lib下复制一个tomcat-websocket.jar 区别在于.jar之前加入一个空格:tomcat-websocket .jar...),data); } catch (Exception e) { e.printStackTrace(); } 暂时是无法触发,不过如果程序添加新功能或者特殊情况,一定会重启 (其实服务端...: 黑客可以获取路径得到tomcat版本,比如我这里8.5.72,分割路径即可获得字符串 然后给新jar命名位tomcat-websocket-8.5.72.jar 相对于加个.或者空格,这种做法更为隐蔽

56810

WebSocket系列之二进制数据设计与传输

本文作为WebSocket系列第四篇内容,将会用一个简单IM聊天应用把整个WebSocket传输二进制数据类型内容连接起来,让用户对整个WebSocket传输二进制数据方法有个了解。...它三要素是:语法、语义、时序。 通过百度百科中介绍,我们对协议概念有了一个基础了解。通俗来说,协议就是通信双方约定好一套规则。 为什么要设计协议 没有规矩不成方圆。...通信双方只有通过协议,才能够识别对方发送数据内容。 我们应该如何设计这套协议 首先,协议设计应该能够区分不同各个数据;其次,它还需要具备一定兼容性。...扩展此协议 当此协议字段无法满足并且已经在线上使用时,我们应该如何扩展呢?...扩展前应用仍然会读取之前已经确定数据协议,只需要保证内容不变,那么功能也不会变。 扩展后应用能够解析扩展后协议,因此得到更多数据,从而可以实现更多功能。

6.8K10

SocketRocket源码分析

这个字符串是RFC规范定死,至于为什么是这么一串,楼主也不知所以然。...也就是说,WebSocketRFC标准是不会产生粘、断问题。无需应用层开发人员关心缓存以及手工组装message。...数据是通过CFStream流方式回调回来,每次拿到流数据,都是先放在数据缓冲区中,然后去读当前消息帧头部,得到当前数据大小,然后再去创建消费者对象consumer,去读取缓冲区指定数据大小内容...接着我们大概来看看这个流程: 上面这个方法就是一个读取头部方法,之前我写过断文章就是用一个\r\n来分割头部和正文,这里是用了\r\n\r\n,每次读到这个标识符为止,就是读取了一个完整WebSocket...,到内容读取过程: 每次我们读取一帧数据,都会调用这么个方法: 会清空上一帧一些信息,然后开始当前帧读取,我们来简单看看一个WebSocket消息帧里包含什么: 就是这么一张图,大家应该经常见

1K30

保存文件到SD卡

/****************2016年5月4日 更新*****************************/ 知乎:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/data...Android本身提供了/data/data/com.companyname.appname/这个路径供广大app存放configuration以及user data之类东西,为什么很多App要把配置文件甚至...祈雨蓝: 没有限制 另外对应着 SD卡上也有一个文件夹 /Android/data/名,这个文件夹也是用来给程序放应用数据,此文件夹读写在4.4及以后不需要外置储存区读写权限。...这两个文件夹区别在于 data 分区有权限控制,除非应用自己同意,否则其他应用无法读取内部数据,而sdcard/Android下文件只要有外置空间读取权限就可以读取。...import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader

2.7K20

项目打包成 jar 后无法读取srcmainresources下文件

项目打包成 jar后无法读取src/main/resources下文件 一、项目场景 二、问题描述 发现问题 分析问题 为什么使用 ClassPathResource 后, 可以找到打包后文件路径?...src/main/resources下无法找到该文件 分析问题 项目在打包之后, 位于 resource目录下文件, 最常见就是各种Spring配置文件就会打包在 BOOT-INF/classes...在定位问题过程中发现,这里提供了一个思路 就是SpringBoot中所有文件都在jar中,没有一个实际路径,因此可以使用以下方式 /** * 通过ClassPathResource...类获取,建议SpringBoot中使用 * springboot项目中需要使用此种方法,因为jar中没有一个实际路径存放文件 * * @param fileName...(fileName); is = resource.getInputStream(); /** * Java读取txt文件内容 * * @param fileName

9.7K20

获取类路径某个json文件中内容字符串

前言 实际项目中可能会有需要读取类路径下面的配置文件中内容需求,由于springboot项目打包是jar,通过文件读取获取流方式开发时候没有问题,但是上到linux服务器上就有问题了,对于这个问题记录一下处理方式...类加载器方式 通过类加载器读取文件流,类加载器可以读取jar编译后class文件,当然也是可以读取jar文件流了 比如要读取resources目录下common/tianyanchasearch.json...FileUtil.getStringFromInputStream(resourcePath); return GlobalResult.succeed(JSON.parseObject(content)); /** * 从输入流中获取文件内容字符串...inputStream = classPathResource.getStream(); bufferedReader = new BufferedReader(new InputStreamReader...推测主要原因是springboot内置tomcat,打包后是一个jar,因此通过文件读取获取流方式行不通,因为无法直接读取压缩文件,读取只能通过流方式读取

2.6K30

手写4个mini版tomcat!

写在前面 Apache Tomcat 是Java Servlet, JavaServer Pages (JSP),Java表达式语言和JavaWebSocket技术一个开源实现 ,通常我们将Tomcat...什么是http协议 Http是一种网络应用层协议,规定了浏览器与web服务器之间如何通信以及数据结构。 通信大致可以分为四步: 先建立连接。 发送请求数据。 发送响应数据。 关闭连接。...这也就是为什么大家都把Tomcat叫做Servlet容器原因,其实真正容器还是java集合。...所以,大家在网上看到手写tomcat,也有使用线程池来做,这里希望大家能get到为什么使用线程池来实现。另外,其实在tomcat高版本中已经没有使用BIO了。 ?...也是可以通过解析某个目录下server.xml文件,并把内容赋给java中相应变量罢了。

45630

Java文件读写

8.类File一般不涉及文件内部具体内容,而是从整体上对文件进行处理,如获取各种各样文件消息或者删除文件。类File不仅可以对文件进行操作,而且还可以对路径进行操作。...(串行化概念:指对象通过把自己转化为一系列字节,记录字节状态数据,以便再次利用这个过程) 20.串行化(Serializable)是Java.io中定义一个接口。...26.InputStreamReader类继承自Reader类,通过其read方法从字节流中读取一个或者多个字节数据转换为字符数据。它可以接一个缓冲流来提高效率。...2)writer类是定义流式字符输出抽象类 3)FileReader类创建了一个可以读取文件内容Reader类 4)FileWriter创建一个可以写文件Writer类 用FileReader...fr=new InputStreamReader(fis,"gbk");//重点是这个,我也不知道为什么用utf-8不行 BufferedReader br=new BufferedReader

61410

file,fileInputStream, fileReader,inputStreamReader等java文件流类关系区别

换句话说,流类关注是文件内容,而File类关注是文件在磁盘上存储。...类区别: 流类关注是文件内容,而File类关注是文件在磁盘上存储。...String指定路径就可以了,一直不明白为什么很多人都先构造一个File对象,现在终于明白了,“如果处理文件或者目录名,就应该使用File对象,而不是字符串。”...则按字节流方式读取文件; InputStreamReader可以将读如stream转换成字符流方式,是reader和stream之间桥梁; 最初Java是不支持对文本文件处理,为了弥补这个缺憾而引入了...总结以上内容,得出比较好规范用法: 1) File file = new File (“hello.txt”); FileInputStream in=new FileInputStream(

57010

Java IO学习笔记三

参考文章 Java IO学习笔记三 在整个IO中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流转换类。...InputStreamReader InputStreamReader 是字节流通向字符流桥梁:它使用指定 charset 读取字节并将其解码为字符。...它使用字符集可以由名称指定或显式给定,或者可以接受平台默认字符集。 每次调用 InputStreamReader一个 read() 方法都会导致从底层输入流读取一个或多个字节。...主要功能还是从文件中读取内容,不过是一次性读取多个字节,这个很像它子类FileReader 构造函数 InputStreamReader(InputStream in) 创建一个使用默认字符集...(c); //将内容读取到数组中 System.out.println(len); for (int i = 0; i < c.length

32110

掌握Java中FileReader类:逐步教程

摘要  FileReader类是Java.io一个类,用来读取文件中字符数据,它继承了InputStreamReader类。...FileReader类概述  FileReader类是Java.io一个类,用来读取文件中字符数据,它继承了InputStreamReader类,InputStreamReader类又继承自Reader...部分源码截图如下:应用场景案例  FileReader类通常用于读取文本文件内容。...然后,使用while循环,从reader中读取内容,并将读取数据存入buffer中。如果读取长度为-1,表示已经读取到文件末尾,循环结束。  ...小结  本文介绍了Java.ioFileReader类,包括FileReader类构造方法、常用方法、应用场景、优缺点等内容,并提供了一个简单测试用例。

34632

FileReader 和FileInputStream区别

换句话说,流类关注是文件内容,而 File 类关注是文件在磁盘上存储 File 类主要方法有(),lastMod: getName(),getCanonicalFileified(),isDerector...(),isFile(),getPath() 等; 流类关注是文件内容,而 File 类关注是文件在磁盘上存储。...String 指定路径就可以了,一直不明白为什么很多人都先构造一个 File 对象,现在终于明白了,“如果处理文件或者目录名,就应该使用 File 对象,而不是字符串。”!...它使用字符集可以由名称指定或显式给定,或者可以接受平台默认字符集。每次调用 InputStreamReader一个 read() 方法都会导致从底层输入流读取一个或多个字节。...=null)  { System.out.println(data); } 总结以上内容,得出比较好规范用法: 1) File file = new File (“hello.txt

58020

Java HTTP请求 如何获取并解析返回HTML内容

Java HTTP请求 如何获取并解析返回HTML内容在Java开发中,经常会遇到需要获取网页内容情况。而HTTP请求是实现这一目标的常用方法之一。...JavaHTTP请求 如何获取并解析返回HTML内容首先,我们需要导入相关Java类库:java.netHttpURLConnection类和java.ioInputStreamReader...代码如下所示:int responseCode = connection.getResponseCode();接下来,我们需要从服务器返回输入流中读取数据。...内容,从而实现对网页内容进一步处理和分析。...总结来说,本文介绍了如何使用Java进行HTTP请求,以及如何获取并解析返回HTML内容。掌握这些基本HTTP请求和HTML内容处理技巧,对于开发Java网络应用程序是非常有帮助

55540

Java转换流_java中字符使用什么编码

(InputStream in) 把传入字节流转成字符流 InputStreamReader(InputStream in,String charsetName)读取其他编码转成Unicode 3...常见字符编码表 4 练习:编码转换测试 创建: cn.tedu. encoding 创建类: TestEncode.java package cn.tedu.encoding; import java.io...,并将读取信息打印在控制台 //read方法返回值类型是int,打印是编码 //UTF-8-28023 gbk-23092 iso-8859-1-230 //System.out.println...,返回读取字符个数 int len = in.read(ch);//len保存读取字符个数 //此处是String构造函数,利用ch数组中数据,构建一个字符串,并打印到控制台 System.out.println...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

81320
领券