Файл dat
содержит следующую информацию, которая написана с использованием writeUTF
: Fruit, Colour, Taste, Yes/No
, последний из которых является да или нет, однако это строка.Создание экземпляра на основе первичных данных
Теперь класс определяется следующим образом
public class Food {
private String name;
private String colour;
private String taste;
private boolean availability;
public Food(String name, String colour, String taste, boolean availability) {
this.name = name;
this.colour = colour;
this.taste = taste;
this.availability = availability;
}
}
Когда я прочитал dat
файл:
FileInputStream fis = new FileInputStream("food.dat");
DataInputStream dis = new DataInputStream(fis);
Могу ли я каким-то образом преобразовать строку текста сразу в экземпляр Food
? Трудный бит - String -> boolean
.
Сначала я хотел бы добавить каждую строку файла на ArrayList
, затем разделить каждую строку из ,
и добавить его в строку массивной и использовать if
логики для обработки Yes/No
части, но что, если есть тысячи строк эта информация? Этот подход не слишком привлекателен.
При условии, что это не написано с использованием ObjectOutputStream
, к сожалению (присвоение какого-то рода, я не создавал правил). Есть ли способ прочитать строку из файла и создать экземпляр на основе информации?
Параметр доступности является логическим. Не станет ли это проблемой? –
Вы создаете второй конструктор: у вас есть один с 4 параметрами, вы его сохраняете, затем добавляете тот, который я дал вам для создания из текстовой строки. –
Я понимаю, но что, если я создал экземпляр с использованием исходного конструктора, а затем захотел «DataOutputStream'' в уже существующий файл. Затем я определяю метод, в котором я изменяю логическое значение в текст перед записью? –