java后端怎么返回音频流_Java语言中的IO流read()方法返回值为什么是int而不是byte?...
下面是read方法的API
public abstract int read()throws IOException
Reads the next byte of data from the input stream. The value byte is returned as anint
in the range0
to255
. If no byte is available because the end of the stream has been reached, the value-1
is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
A subclass must provide an implementation of this method.
Returns:the next byte of data, or-1
if the end of the stream is reached.Throws:IOException
- if an I/O error occurs.
返回的是一个输入流中的byte数据,为什么返回值却是int呢?
因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte;
有可能在读到中间的时候遇到111111111,那么这11111111是byte类型的-1
(这是因为补码的缘故,
原码:将一个整数,转换成二进制,就是其原码。
如单字节的5的原码为:0000 0101;-5的原码为1000 0101。
反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。
如单字节的5的反码为:0000 0101;-5的反码为1111 1010。
补码:正数的补码就是其原码;负数的反码+1就是补码。
如单字节的5的补码为:0000 0101;-5的原码为1111 1011。
在计算机中,正数是直接用原码表示的,如单字节5,在计算机中就表示为:0000 0101。
负数用补码表示,如单字节-5,在计算机中表示为1111 1011。)
我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收;
如果11111111会在其前面补上24个0凑足4个字节,那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型
java后端怎么返回音频流_Java语言中的IO流read()方法返回值为什么是int而不是byte?...相关推荐
- java中flush函数作用_Java语言中flush()函数作用及使用方法详解
最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...
- Java语言异常处理的出口_Java语言中,下列哪一个子句是异常处理的出口?
不存源的在资如果稀缺性,语言异常意义在的经济学就了存失去. 的训阅读中最.下列最重要教学经常练是. 处理辨识的高平是古玉级水市场.内容的一与第相符项是四段,下列理解. 语言异常并单定取用仿以确样点在P ...
- java 程序语言中的LinkedList 集合基本方法演示
java 程序语言中的LinkedList 集合基本方法演示 import java.util.Iterator; import java.util.LinkedList;public class L ...
- c语言ftell的作用,C语言中ftell函数的使用方法
在C语言中,ftell函数用来返回回当前文件指针的位置.其定义在stdio.h头文件中.具体介绍如下: 函数原型:long ftell(FILE *fp); 是否是标准函数:是 函数功能:返回当前文件 ...
- _nop_在c语言里什么作用,单片机c语言中nop函数的使用方法和延时计算
原标题:单片机c语言中nop函数的使用方法和延时计算 标准的C语言中没有空语句.但在 的C语言编程中,经常需要用几个空指令产生短延时的效果. 这在汇编语言中很容易实现,写几个nop就行了. 在C51中 ...
- JAVA IO流read方法基础使用
java io流read方法基础用法 一.FileInputStream 二.字节数组读取 三.循环读取 一.FileInputStream 首先使用FileInputStream创建一个读入流,读取 ...
- 在java语言中 ()方法是不可以继承的_Java 语言中,构造方法是不可以继承的。( )_学小易找答案...
[简答题]需求分析完整话术 [简答题] [单选题]适用于场地面积有限,集装箱吞吐量较大的水陆联运码头的起重机系统是( )系统 [单选题]利用叉车或半挂车.汽车承载货物,连同车辆一起开上开下船,到达目的 ...
- java中父类创建子类的语法_Java 语言中,所创建的子类都应有一个父类。( )_学小易找答案...
[判断题]一个类可以实现多个接口,接口可以实现"多重继承". ( ) [简答题]报价议价环节话术 [单选题]定义一个公有double型常量PI,哪一条语句最好?( ) [论述题]展 ...
- java里面赋值运算符解释_Java语言中,赋值运算符是双目运算符。
[判断题]Java编译器可以将Java字节码文件解释为二进制代码. [单选题] [单选题]为了能够使MCS-51单片机在正常工作中及时服务于多个外设,以下传送方式最适用的是(). [单选题]当使用AT ...
最新文章
- Rails字符集问题
- 十进制度转换为度分秒
- Javascript 进阶 作用域 作用域链
- sdwan技术发展正蚕食mpls市场—vecloud
- ActiveXObject函数详解
- 在项目中增加自定义icon图标
- python新人一月工资_python【项目】:工资管理(简易版)
- 南京php培训班哪家,南京PHP培训中心哪家比较专业
- postman--安装及Interceptor插件
- CentOS 7 yum 安装php5.6
- Python自动化办公练习——合并工作簿
- Riot Game前高管:游戏玩家将成为Web3真正粉丝的15大原因
- CF1313C2 Skyscrapers (hard version) -单调栈优化dp
- JVM(2)垃圾收集器
- c++中“ error C2953: “XXXXx”: 类模板已经定义”的另类方式错误
- 实现移动端H5页面调用摄像头
- python图片拼合
- 详细分析DRM架构下获取HDMI/DP/VGA/DVI显示屏参数的实现原理
- 仿“香哈菜谱”微信小程序(第4章)
- 树莓派 4b 可执行文件 无法双击运行_云拆机,一起来看看树莓派的新品——Raspberry Pi 400...