我尝试将我的数组写入一个文件,但是我得到的不是我的数据,而是两个单元格;一个是 [Ljava.lang.String;@7b1ddcde
,另一个是[Lorg.supercsv.cellprocessor.ift.CellProcessor;@658fb1f7
我不知道这到底是怎么发生的,因为我的数组实际上是一组非常好的数据,当我将它打印到控制台时就可以工作。
我的表格包含所有标题和必需的单元格,只是这些奇怪的错误占据了前两个单元格,并且没有写入其他数据。
我的 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;
}