Java преобразует файлы в массив байтов
Ключевые слова: файл, поток файла, байтовый поток, массив байта, двоичный
Аннотация: Недавнее требование, которое сталкивается в работе, состоит в том, чтобы использовать HTTP для передачи двоичных данных в соответствующий интерфейс сервера, и серию смешанных двоичных данных, таких как пользователь и файл (зашифровано). Эта статья направлена на то, чтобы записать некоторые знания и краткое изложение конвертации файлов в байтовые массивы с использованием Java.
FileInputStream
Читать файлы с помощью FileInputStream
FileInputStream - это подкласс InputStream, который используется для чтения информации из файла. Конструктор получает тип файла или тип строки, представляющий путь файла.
File file = new File ("filePath"); FileInputStream fis = new FileInputStream (file); BytearrayOutputStream
Используйте BytearRayOutputStream для чтения файловых данных в FileInputStream
BytearrayOutputStream используется для создания буфера в памяти, и все данные, отправляемые в «поток» в этом буфере.
BytearrayOutputStream Bos = new BytearRayoutputStream (fis); byte [] b = новый байт [1024]; int len = -1; while ((len = fis.read (b))! = -1) {bos.write (b, 0, len);}Примечание. Метод записи BytearrayOutputStream имеет три перегруженные формы:
написать (int b)
Напишите указанные байты
написать (байт [] б)
Напишите во всем байтовом массиве B
написать (byte [] b, int off, int len)
Напишите в байтовую массив B, начните с внебранного подсказок B и напишите байты Len.
Второй здесь не используется, но третий используется. В коде количество считываний в буфере B, как правило, 1024 (поскольку указанная длина отображается, когда B определяется). Только когда прочитан конец, этого может быть недостаточно 1024 байт, и фактическое количество чтения байтов будет прочитано. Однако при написании в буфер, если количество записей не указано, то есть Лен не указан, то весь B будет написан. Даже если есть только часть контента в B, 1024 байт все еще будут написаны. Это приведет к тому , что результирующий байтовый массив не является фактической длиной при использовании TobyTearray!
Это записывает поток файла из InputStream в BytearrayOutputStream.
Используйте метод tobytearray () Bytearrayoutputstream, чтобы получить байт массив файла.
byte [] filebyte = bos.tobytearray ();
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!