Как работает ByteStream? - PullRequest
       27

Как работает ByteStream?

0 голосов
/ 17 января 2020

Как необработанные данные делятся на байты.

Поскольку текущее аудио содержит 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 -> text '$ 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

1 Ответ

1 голос
/ 17 января 2020

fis.read () читает байт данных из входного потока и представляет его как int. Допустим, ваш файл содержит 2 байта двоичных данных: 0100001101101000

Первый вызов fis.read () будет читать 01000011 (и 67 в десятичном виде)

второй вызов fis.read () будет читать 01101000 (а это десятичное число 104).

Так вот почему вы видите результат, например 67 104 ...

...