すべて固定の列番号を持つ異なる CSV ファイルを読みたいのですが、2 つの異なるファイルには 2 つの異なる列番号があります。すべてのファイルにはヘッダー行があります。そのため、最初に CSVListReader を使用してヘッダーと列番号を取得し、次にセル プロセッサと CSV BeanReader を構築して実際の行を POJO にマップします。最初に、InputStreamReaders を superCsv リーダー コンストラクターに渡して機能させようとしましたが、機能しません。ただし、FileReaders または BufferedReaders では問題なく動作します。これはバグですか、それともこの状況で InputStremReaders を使用する意味がありませんか?
これが実際のコード例です
CsvListReader listReader = null;
FileReader file = null;
BufferedReader b = null;
try {
file = new FileReader(linkToFile);
b = new BufferedReader(file);
listReader = new CsvListReader(b,
CsvPreference.STANDARD_PREFERENCE);
csvHeader = listReader.getHeader(true);
} catch (IOException e) {
logger.info("Did not manage to get the Csv Header", e);
try {
listReader.close();
file.close();
} catch (IOException e1) {
logger.info("Problem trying to close the readers", e1);
return;
}
}
try {
file = new FileReader(linkToFile);
b = new BufferedReader(file);
beanReader = new CsvBeanReader(b,
CsvPreference.STANDARD_PREFERENCE);
beanReader.getHeader(false);
extractCSV(beanReader, csvHeader);
catch (IOException e) {
logger.info("Did not manage to get a working CsvBeanReader.", e);
try {
beanReader.close();
listReader.close();
file.close();
} catch (IOException e1) {
logger.info("Problem trying to close the readers", e1);
}
return;
}
前もって感謝します