Как мне просто прочитать .txt файл, который я создал, и посчитать его строки - PullRequest
0 голосов
/ 17 марта 2020

Я очень новичок в Android Studio, но у меня есть два вопроса.

Итак, в настоящее время я использую метод, чтобы взять строки из файла .txt и преобразовать его в ArrayList. Я использую FileReader и LineNumberReader. Когда я запускаю программу, ловушки активируются, хотя этот код работает на Eclipse.

Мой вопрос: 1. В настоящее время я храню файл .txt в папке raw в ресурсах. Это правильное место, чтобы поставить его? 2. Я использую местоположение "\ res \ raw \ city.txt". Я неправильно называю файл?

Вот мой код ( в Android Studio ) для еще немного контекста:

    //Method to take a file and convert into an ArrayList
    private ArrayList<String> txtArray(String fileLoc) throws IOException {
        int n = 22;

        File file = new File(fileLoc);

        //Counts how many lines are in the system
        try {
            FileReader fr = new FileReader(fileLoc);
            LineNumberReader lr = new LineNumberReader(fr);

            lr.skip(Long.MAX_VALUE);
            n = lr.getLineNumber();

            Toast errorToast3 = Toast.makeText(getActivity(), "the Number of lines is " + n, Toast.LENGTH_SHORT);
            errorToast3.show();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Toast errorToast5 = Toast.makeText(getActivity(), "Fuk " + n, Toast.LENGTH_SHORT);
            errorToast5.show();
        }

        Toast errorToast3 = Toast.makeText(getActivity(), "Still ok here " + n, Toast.LENGTH_SHORT);
        errorToast3.show();

        //Takes lines from the text file and converts into Array List
        Scanner kb = new Scanner(new File(fileLoc));

        Toast errorToast7 = Toast.makeText(getActivity(), "Pls work " + n, Toast.LENGTH_SHORT);
        errorToast7.show();

        ArrayList<String> test = new ArrayList<String>();
        for (int i = 0; i < n; i++) {
            test.add(kb.nextLine());
            //kb.next();
        }

        return test;

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 17 марта 2020
  1. Вы, вероятно, хотите внутреннее хранилище .
  2. Путь кажется неправильным, поскольку он использует неправильные косые черты и также использует абсолютный путь (начиная с /). Попробуйте res/raw/city.txt.

Также вы можете посмотреть Files.lines (). Collect (Collectors.toList ())

...