Как правильно форматировать данные в файл.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 и т. П. Хотя, возможно, вам стоит пойти с Джексоном: он довольно прост в использовании и содержит множество документации, учебных пособий и другие полезные темы в интернете.

Другие вопросы по тегам