Java — запись CSV-файла с помощью Apache.commons.csvJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java — запись CSV-файла с помощью Apache.commons.csv

Сообщение Anonymous »

Я использую библиотеку apache.commons.csv в Java. Я читаю CSV-файл с веб-страницы с помощью этого кода:

Код: Выделить всё

InputStream input = new URL(url).openStream();
Reader reader = new InputStreamReader(input, "UTF-8");

defaultParser = new CSVParser(reader, CSVFormat.DEFAULT);
excelParser = new CSVParser(reader, CSVFormat.EXCEL.withHeader());

defaultParsedData = defaultParser.getRecords();
excelParsedData = excelParser.getRecords();

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

Код: Выделить всё

String outputFile = savePath+".csv";
CSVPrinter csvFilePrinter = null;
CSVFormat csvFileFormat = CSVFormat.EXCEL.withHeader();
FileWriter fileWriter = new FileWriter(outputFile);
csvFilePrinter = new CSVPrinter(fileWriter, csvFileFormat);

for (CSVRecord csvRecord : excelParser) {
for(String dataPoint: csvRecord){
csvFilePrinter.print(dataPoint);
}
csvFilePrinter.print('\n');
}

fileWriter.flush();
fileWriter.close();
csvFilePrinter.close();
Однако, когда я пытаюсь прочитать файл с этим кодом, ничего не выводится:

Код: Выделить всё

InputStream input = new FileInputStream(cvsFilePath);
Reader reader = new InputStreamReader(input, "UTF-8");

CSVParser load = new CSVParser(reader, CSVFormat.EXCEL);
//TEST THAT IT WORKED
java.util.List testlist = load.getRecords();
CSVRecord dataPoint = testlist.get(0);
System.out.println("print: " + dataPoint.get(0));
Это выводит только «print:»
Если я добавлю

Код: Выделить всё

System.out.println("print: " + dataPoint.get(1));
это дает

Исключение в потоке «main» java.lang.ArrayIndexOutOfBoundsException: 1

Когда я открываю сохраненный файл CSV с помощью блокнота, появляется пустая строка, а затем:

2016-03-04,714.98999,716.48999,706.02002,710.890015,1967900,710.890015,"
",2016-03-03,718.679993,719.450012,706.02002,712.419983,1956800,712.419983," ",2016-03-02,719.00,720.00,712.00,718.849976,1627800,718.849976",


Подробнее здесь: https://stackoverflow.com/questions/362 ... ommons-csv
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»