Как напечатать файл .CSV полностью в консоли вывода Java? - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь прочитать файл .CSV, который состоит из почтовых индексов и их адресов по всей стране.Всякий раз, когда я пытаюсь прочитать файл, консоль печати просто показывает часть файла, а не весь файл.Что я должен сделать, чтобы напечатать весь файл на консоль.

Я работаю над eclipse, и я пробовал и CSVreader (библиотека openCSV), и сканер inputStream, но они показывают разные результаты при их выполнении каждый раз.

public class Database
{

   public static void main(String[] args) throws Exception
   {

      CSVReader reader = new CSVReader(new FileReader("data.csv"));

      List<String[]> allRows = reader.readAll();

      for(String[] row : allRows){
        System.out.println(Arrays.toString(row));
     }
   }
}

Ожидаемое:

[Чакрагаон, SO, 744112]

[Chatham, SO, 744102]

[Delanipur, SO, 744102]

[Marine Jetty, SO, 744101]

[Минни Бэй, SO, 744103]

[NSBuilding, SO, 744101]

Фактический:

[Minnie Bay, SO, 744103]

[NSBuilding, SO, 744101]

Файл состоит из 100 000+ строк.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

Вы столкнулись с этой проблемой из-за reader.readAll() - у читателя есть предохранитель, предотвращающий переполнение памяти при чтении в больших файлах.Вместо этого читайте только одну строку за раз, печатайте, а затем переходите к следующей строке:

CSVReader reader = new CSVReader(new FileReader("data.csv"));

for(String[] row : reader) {
    System.out.println(Arrays.toString(row));
}

Синтаксис цикла for распознает CSVReader как Iterable<String[]>, поэтому он может автоматически циклически повторять строки.

0 голосов
/ 27 апреля 2019

Это может быть, а может и не быть проблемой печати.Во-первых, вы должны проверить, что вы действительно прочитали более 2 строк.Для этого я рекомендую использовать отладчик (звучит так, как будто вы используете eclipse на основе вашего тега) и ставить точку останова после чтения строк.Получить размер ...

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...