Вот способ прочитать содержимое файла в массив byte
. FileInputStream
- это все, что вам нужно - оставьте ObjectInputStream
вне этого (если вы явно не имеете дело с данными, которые были созданы из ObjectOutputStream
, но это не так, поскольку вы вызываем println()
на каждый байт).
public static void main(String[] args) {
String filename = "file1.bin";
try (FileInputStream fis = new FileInputStream(filename)) {
byte[] bytes = fis.readAllBytes();
for (byte b : bytes) {
System.out.print(b);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Несколько вещей здесь:
опустить использование ObjectInputStream
- не требуется для чтения байтовых данных, и не будет работать, если данные не были созданы соответствующим потоком вывода. Из Javado c: "ObjectInputStream десериализует примитивные данные и объекты, ранее написанные с использованием ObjectOutputStream."
use try
с ресурсами - он закроет связанный с вами поток
catch Exception
- в опубликованном вами коде вы увидите информацию, только если выброшено FileNotFoundException
или IOException
. Во всем остальном ваш код не обрабатывает их и не распечатывает информацию.