字节流是如何工作的?

How ByteStream works?

原始数据如何划分为字节。

由于当前音频包含 32 位(2^32 音调),因此范围为 2^0 - 2^32。

ex -> 6710497..(考虑十进制)

如何划分为

67 104 97

FileInputStream有没有类似的方法检查

if(671>256){发送 67 , 接下来追加 1}

try(FileInputStream fis=new FileInputStream("We_Dont_Talk_Anymore.mp3")) { //audio file

        int i;
        while((i=fis.read())!=-1)
            System.out.println(i);  
} catch(Exception e) {
    System.out.println(e);
}

o/p-

73 68 51 3个 0 0 0 0 1个 9 84 73 84 50 0 0 0 76 0 0 0 67 104 97 114 108 105 101 32 80 . . .

编辑

这是正确的吗

i/p -> 文本“$4-”

36 52 45(ascii 十进制)

00100100 00110100 00101101(ascii 二进制)

i/p -> 图像像素(rgb) '0,255,100'

00000000 11111111 1100100

i/p -> 音频(32 位,2^32 音调)'1073741822'

111111111111111111111111111110(二进制形式)

00111111 11111111 11111111 11111110 (按字节划分) [一调]

63 255 255 254

fis.read() 从输入流中读取一个字节的数据并将其表示为 int。假设您的文件有 2 个字节的二进制数据:0100001101101000

第一次调用 fis.read() 将读取 01000011(十进制为 67)

第二次调用 fis.read() 将读取 01101000(十进制为 104)。

这就是为什么您会看到类似 67 104 ...

的输出