java - 字节流如何工作?

标签 java audio io mp3 bytestream

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

由于当前音频包含 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 这样的输出......

关于java - 字节流如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59789220/

相关文章:

java - 类的模拟在 Spock 测试用例中不起作用

java - 多线程环境中的对象深度锁定

android - 生成声音 - PCM(Android - Java)

c# - 对象实例化是否必须发生在 using block 表达式中?

java - 如何在java中解析soap字符串

java - 实现从main到fragment的菜单项

javascript - JavaScript 中的频率正弦扫描生成

audio - FFmpeg - 我需要什么复用器来保存 AAC 音频流

python - 无法加载包含腌制数据的文件 - Python .npy I/O

如果返回零,Java 从文件中删除字符串