Является ли создание объектов с использованием файлов CSV хорошей практикой? - PullRequest
0 голосов
/ 29 июня 2018

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

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

Любой совет будет принята с благодарностью. Спасибо.

MainActivity расширяет AppCompatActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    createItemObjects();
}


public void createItemObjects(){
    InputStream is = getResources().openRawResource(R.raw.items_csv);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));

    ArrayList<Item> items = new ArrayList<Item>();
    String line = "";
    try {
        while((line = reader.readLine())!=null) {
            String[] values = line.split(",");
            String img = values[0];
            int imgID = getResources().getIdentifier(img , "drawable", getPackageName());
            items.add(new Item(imgID, values[1], values[2]));
        }
    } catch (IOException e) {
        Log.v("Main Activity", "Error Reading File on Line " + line, e);
        e.printStackTrace();
    }
    ItemListHolder.getInstance().setItemsArrayList(items);
}

Итак, как вы можете видеть, когда приложение запускает, оно читает файл CSV, создает объекты Item, создает ArrayList для хранения этих объектов Item, а затем отправляет его в одноэлементный объект ItemListHolder, чтобы все действия в приложении могли использовать ItemListHolder.getInstance (). GetItemsArrayList () для получения ArrayList элемента.

Это работает без каких-либо проблем, но мой вопрос: заставляет ли ваше Android-приложение создавать объекты из CSV-файла каждый раз, когда оно перезапускается, считается хорошей практикой / безопасным в использовании / эффективным и т. Д., Или вы должны хранить свои объекты каким-либо другим способом например, общие настройки, так что они фактически сохраняются в памяти и их не нужно создавать каждый раз, когда приложение запускается, а затем хранить в классе.

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

...