Как правильно форматировать данные в файл.txt? (Джава)
Я хотел бы использовать файл.txt для хранения данных для элементов, поэтому мне нужно, чтобы моя программа быстро перебирала файл.txt для быстрого сравнения, чтобы найти нужный элемент и использовать информацию об этом элементе для использования в программе. Интересно, ради эффективности, каков правильный способ записи данных в файл.txt и какой метод лучше всего подходит для сбора информации. Кроме того, является ли BufferedReader лучшим способом для чтения файла?
(т.е. как бы я записал эту информацию в файл.txt? Просто для простоты используем пример Minecraft)...
[Блок: трава, BlockData: 2, isSolid: true и т. Д...]
Спасибо!
1 ответ
Если ваши данные плоские, вы можете использовать CSV. Таким образом, вы можете легко редактировать ваши данные в LibreOffice или Excel.
Под плоским я имею в виду: ваш класс данных не содержит списков или карт, только простые свойства, т.е.
class MyData {
private TypeEnum block;
private int blockData;
private boolean solid;
private String name;
}
Если он содержит списки или карты, вы должны рассмотреть возможность использования чего-то вроде JSON или XML.
Для CSV существует несколько библиотек, например OpenCSV ( http://opencsv.sourceforge.net/), или вы можете просто использовать Джексона с datatype-csv ( https://github.com/FasterXML/jackson-dataformat-csv).
Джексон имеет плагины для типов данных и поддерживает множество (!!) форматов, таких как JSON, XML, CSV, Yaml, Protobuf и т. П. Хотя, возможно, вам стоит пойти с Джексоном: он довольно прост в использовании и содержит множество документации, учебных пособий и другие полезные темы в интернете.