Я конвертирую float
в byte[]
следующим кодом:
byte[] bytes = ByteBuffer.allocate(4).putFloat(number).array();
Соответственно, если я конвертирую, например, число 0.02f
я получу байты [60,-93,-41,10]
Далее я пытаюсь записать полученные byte[]
в файл следующим кодом:
FileOutputStream fos = new FileOutputStream(file);
fos.write(bytes);
dbf.close();
На большинстве платформ полученный файл в HEX-редакторе выглядит так: 3C A3 D7 0A
. Но на одном из устройств вместо требуемых 4 байт я получаю 5: 3C A3 D7 0D 0A
. Перед каждой 0A
самостоятельно прописывается символ 0D
Мне известно, что 0A
это символ возврата каретки, а 0D
это символ переноса строки. Но мне непонятно, как он может появиться самостоятельно, ведь я работаю с числами и байтами, а не со строками.
С чем может быть связано такое поведение и как мне устранить этот баг ?
Я полагаю, что где-то происходит сбой и файл воспринимается как текстовый и вступает в действие system dependent умолчания когда конец строки для Windows это комбинация <LF><CR>
, а для Unix просто <CR>
. Попробуйте использовать RandomAccessFile
Если все действительно так как вы описали - тема достойна для публикации бага в Java
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день, пытаюсь запустить GPS, но не как не могу понять почему в созданном Fragment подчёркивает красным все this а так же getSystemService ?
Доброго времени суток! Как сделать что бы элементы (в моем случае кнопки) в контейнере TableLayout занимали все пространство экранаВ ширину я решил...
Сделала анимацию кнопки вращение вокруг своей оси в методе setOnTouchListenerА как сделать такую анимацию, чтобы при нажатии на кнопку она тряслась?...