Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с кодом на джава

Роман Игамбаев Ученик (109), на голосовании 1 год назад
При работе программы выходит ошибка:
java.io .StreamCorruptedException: invalid stream header: 66756C6C
at java.base/ java.io .ObjectInputStream.readStreamHeader(ObjectInputStream.java:958)
at java.base/ java.io .ObjectInputStream.<init>(ObjectInputStream.java:392)
at sportshop.bootstrap.utils.FileUtils.readFile(FileUtils.java:11)
at sportshop.bootstrap.Website .runWebsite(Website.java:16)
at Main.main(Main.java:5)
Какие то траблы с сериализацией, пробовал файл пересоздать ничего не помогло.
Вот ссылка на гит: https://github.com/RomanIgambaev/FileReader.git
Я ток учусь так что не обращайте внимание если что то реазиловано херово
Голосование за лучший ответ
Татьяна Просветленный (36374) 1 год назад
Ошибка " java.io .StreamCorruptedException: invalid stream header: 66756C6C" возникает, когда ObjectInputStream не может прочитать заголовок потока, который был записан с помощью ObjectOutputStream. Это может произойти, если вы пытаетесь прочитать текстовый файл с помощью ObjectInputStream.
Похоже, что проблема в том, что вы пытаетесь прочитать текстовый файл с помощью ObjectInputStream в методе FileUtils.readFile(). Вам нужно использовать BufferedReader или Scanner для чтения текстовых файлов.
Вот пример того, как вы можете прочитать текстовый файл с помощью BufferedReader:
 public static String readFile(String fileName) throws IOException { 
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append(System.lineSeparator());
}
}
return sb.toString();
}
Вы можете использовать этот метод вместо вашего текущего метода FileUtils.readFile().
Также, когда вы создаете ObjectOutputStream, вы должны использовать метод writeObject() для записи объектов в поток, а не метод write().
Похожие вопросы