2016-07-19 4 views
2

Я использую приведенный ниже код, чтобы получить данные из файла, сохраненного на моем рабочем столе, для ввода в игру, которую я делаю.Сериализация Java и обработка объектов

try { 
    FileInputStream saves = new FileInputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser"); 
    ObjectInputStream in = new ObjectInputStream(saves); 
    test = (player) in.readObject(); 
    in.close(); 
    saves.close(); 
} catch(IOException error) { 
    error.printStackTrace(); 
    return; 
} catch(ClassNotFoundException error) { 
    error.printStackTrace(); 
    return; 
} 

Существует также раздел, который берет объект игрока и вводит его в файл.

player realPlayer = new player(); 
realPlayer.name = newName; 
realPlayer.gender = newGender; 
realPlayer.hasStarted = false; 
try { 
    FileOutputStream fileOut = new FileOutputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser"); 
    ObjectOutputStream out = new ObjectOutputStream(fileOut); 
    out.writeObject(realPlayer); 
    out.close(); 
    fileOut.close(); 
} catch(IOException i) { 
    i.printStackTrace(); 
} 

Вопрос, который я имею, что если вы сохраняете более одного игрока на данные файла, он вызывает ошибки, потому что она принимает все данные и превращает его в один объект игрока. Знаете ли вы простой способ, которым я мог бы разделить данные? Я думал об использовании нескольких файлов для хранения данных каждого другого объекта. Я также собираюсь извлечь данные и разделить их на отдельные объекты, а затем работать оттуда, однако я не знаю, с чего начать на втором.

+3

Как насчет сериализации набора или хэш-карты игроков? – BCartolo

+0

@BCartolo, что бы это было? Проблема в том, что в файле не всегда будет много игроков. – Shaydoth

+1

И набор размеров 1 вам не подходит, потому что .....? – whitesite

ответ

2

Как уже было предложено другими, используйте реализацию Serializable java.util.Collection. (Большинство коллекций java.util, таких как java.util.ArrayList и java.util.HashSet --are Serializable.) Коллекция из 0 или 1 элементов не должна вас беспокоить (это не имеет отношения к сериализации коллекции), если в вашей игре нет другого бизнеса требования, которые ухаживают, но ... в этом случае это далеко выходит за рамки этого вопроса и для вас справиться самостоятельно.

Смежные вопросы