Java не конвертирует файл в сам байтовый массив. Как @Toonijn упомянул , программа (Java или другой язык) выполняет системные вызовы для выборки байтов с диска, URL, памяти или другого источника. Все дело в том, как вы хотите посмотреть на байты; будь то изображение, несколько изображений, какой-то пользовательский файл, дамп потока или что-то еще.
Кроме того, в Java есть объекты, и объект может быть представлением для чего угодно : последовательность символов, поток, массив байтов, временный буфер, удаленный файл и т.д ... - что угодно. Например, вы знаете, что какой-то файл является изображением, поэтому вы можете просто рассматривать эти байты как изображение. Пример
import java.awt.Image;
import java.io.File;
import java.io.IOException;
File image2 = new File("bishnu.jpg");
Image image = ImageIO.read(image2);
Или вы знаете, что какой-то some.data
файл является текстовым файлом с пользовательским расширением. Так же, как вы знаете, что такое содержимое файла, вы можете просто прочитать его .
String content = new String(Files.readAllBytes(Paths.get("some.data")));
То же самое относится к PDF . Все, что вам нужно, это добавить библиотеки (они могут быть написаны на Java или других языках; для этого потребуются некоторые хаки: python , C ++ , даже файл bash ) ,
Другой пример - excel file.
Workbook workbook = WorkbookFactory.create(new File("yourfile.xlsx"));
Обратите внимание, что если вы пытаетесь прочитать байты из файла и предполагаете, что это один тип, например, и изображение, но вы обрабатываете его как другой тип, например, Excel, то вы будете читать данные неправильно или даже получить ошибки.