java.io.StreamCorruptedException: неверный заголовок потока: 00000001 Простой проект

1

Моя проблема заключается в том, что мой проект (простой инвентарь, в котором элементы сериализованы в папку и затем десериализован) бросает "java.io.StreamCorruptedException: недопустимый заголовок потока: 00000001", когда я пытаюсь десериализовать информацию. Раньше у меня не было проблем; однако, когда я вручную удалил один из сериализованных файлов с помощью Finder (mac), это когда было выбрано Exception. Мой код для десериализации:

private void compileInventory() {
    //run through text file and create inventory 

    Inv = new <Item>ArrayList();
    File f = new File(loc);
    File[] list = f.listFiles();
    Inv.clear();
    if (f.exists()) {
        for (File n : list) {

                try {
                    FileInputStream fileIn = new FileInputStream(n.getAbsolutePath());
                    ObjectInputStream in = new ObjectInputStream(fileIn);
                    Inv.add((Item) in.readObject());
                    in.close();
                    fileIn.close();
                } catch (IOException i) {
                    i.printStackTrace();
                    return;
                } catch (ClassNotFoundException c) {
                    System.out.println("Item class not found");
                    c.printStackTrace();
                    return;
                }
            }

    }
}
Теги:
file
io
serialization

1 ответ

1
Лучший ответ

Может быть, ваш Mac создал некоторые системные файлы в этой папке, и теперь ваше приложение пытается их обезвредить?

  • 0
    Да, держу пари, вот и все. На моем Mac у меня есть файлы с именем .DS_Store во многих каталогах, и первые четыре байта из тех, что я проверил, - 00 00 00 01.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню