Пока ваш код выглядит нормально. Для чтения двоичных файлов (в отличие от текстовых файлов) вы действительно должны использовать FileInputStream
(для чтения текстовых файлов вы должны использовать Reader
, например FileReader
).
Обратите внимание, что вы должны проверить возвращаемое значение из in.read(b);
, поскольку оно может прочитать менее 16 байтов, если в конце файла осталось менее 16 байтов.
Конечно, вы должны добавить в программу цикл, который будет считывать блоки байтов, пока не дойдете до конца файла.
Чтобы записать данные в двоичный файл, используйте FileOutputStream
. Этот класс имеет конструктор, который вы можете передать флаг, чтобы указать, что вы хотите добавить в существующий файл:
FileOutputStream out = new FileOutputStream("output.bin", true);
Кроме того, не забудьте позвонить close()
на номера FileInputStream
и FileOutputStream
, когда вы закончите.
См. документацию по Java API , особенно классы в пакете java.io
.