配列をファイルに書き込もうとしましたが、データの代わりに2つのセルしか取得できません。1つは [Ljava.lang.String;@7b1ddcde
、もう1つは、[Lorg.supercsv.cellprocessor.ift.CellProcessor;@658fb1f7
これが実際にどのように発生しているのかわからないことです。私の配列は実際には非常に優れたデータセットであり、コンソールに出力すると機能します。
私のテーブルにはすべてのヘッダーと必要なセルがあります。これらの奇妙なエラーが最初の2つのセルを占め、他のデータは書き込まれません。
私のCellProcessorメソッドはいっぱいなnew Optional(),
ので、ここでの問題ではないと思います。これが全体の方法です。申し訳ありませんが、私のコードは急いで作成されたものです。
static String[] writeWithCsvListWriter(String filename) throws Exception {
ICsvListWriter listWriter = null;
try {
listWriter = new CsvListWriter(new FileWriter(Main.filename + ".csv"),
CsvPreference.STANDARD_PREFERENCE);
final CellProcessor[] processors = getProcessors();
final String[] header = new String[] { "Year", "mm", "Max Temp", "Min Temp",
"af days", "Rain", "Sun" };
listWriter.writeHeader(header);
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
List<String> lines = new ArrayList<String>();
String line = null;
int i = 0;
while ((line = bufferedReader.readLine()) != null) {
if(line.startsWith(" 2010")){
try {
String[] splitArray = line.split("\\s+");
System.out.println("Writing Array");
listWriter.write(splitArray, processors);
} catch (PatternSyntaxException ex) {
}
}
i++;
}
bufferedReader.close();
} finally {
if( listWriter != null ) {
listWriter.close();
}
}
return null;
}