Читать текстовый файл и печатать после того, как действие разделения не печатает значение массива

Я пытаюсь прочитать текстовый файл, а затем сохранить разделенное значение в массиве и распечатать все значение текстового файла. Но он не печатает значения.

Вот как отображается значение файла txt, как показано ниже:

"1675683811","590483002"
"2002199221","876015525"

Вот мой код:

String st;
BufferedReader Br = null;
File objFile = new File("C:\\DATA\\File.txt");
Br = new BufferedReader(new FileReader(objFile));
while ((st = Br.readLine()) != null) {
    String value = st.replace("\"", "");
    String[] arraylist = StringUtils.split(value, ",");                     
    for (int i = 0; i <= 1; i++) {
        System.out.println(arraylist[i]);
    }
}                   
Br.close();

Не могли бы вы прояснить, что вы имеете в виду, говоря "Вот как отображается значение txt файла"? Вы имеете в виду, что ниже находится содержимое файла File.txt? Если да, я не могу воспроизвести вашу проблему (я получаю ArrayIndexOutOfBoundsException, поскольку i <= 59 приведет к arraylist[2], который не является допустимым индексом для массива длиной 2).

Pshemo 18.08.2018 20:05

@Pshemo - Вы правы. С тех пор я не упомянул весь файл, в котором 60 столбцов. Для примера я предоставил только две колонки.

Curious 18.08.2018 20:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Может быть, попробуйте написать код, как показано ниже. Я изменил объявление разделения, а также способ отображения значений, потому что ваш способ может сделать исключение в arrayylist объектов:

    String st;
    BufferedReader Br = null;
    File objFile = new File("C:\\data\\file.txt");
    Br = new BufferedReader(new FileReader(objFile));
    while ((st = Br.readLine()) != null) {
        String value = st.replace("\"", "");
        String[] arraylist = value.split(",");                     
        for (String row : arraylist) {
            System.out.println(row);
        }
    }                   
    Br.close();

Небольшое изменение в вашем коде, вы можете просто использовать метод String.split, и ваш цикл for всегда будет генерировать исключение ArrayOutOfBound.

String st;
    BufferedReader Br = null;
    File objFile = new File("/Users/a602782/input.txt");
    Br = new BufferedReader(new FileReader(objFile));
    while ((st = Br.readLine()) != null) {
        String value = st.replace("\"", "");
        String[] arraylist = value.split(",");                    
        for (int i = 0; i <arraylist.length; i++) {
            System.out.println(arraylist[i]);
        }
    }                   
    Br.close();

И если вы хотите напечатать каждую цифру в каждой строке, вы можете снова зациклить ее внутри цикла for

String st;
    BufferedReader Br = null;
    File objFile = new File("/Users/a602782/input.txt");
    Br = new BufferedReader(new FileReader(objFile));
    while ((st = Br.readLine()) != null) {
        String value = st.replace("\"", "");
        String[] arraylist = value.split(",");                    
        for (int i = 0; i <arraylist.length; i++) {
            System.out.println(arraylist[i]);
            for (char c:arraylist[i].toCharArray()) {
                System.out.println(c);
            }
        }
    }                   
    Br.close();

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