【发布时间】:2011-10-30 14:56:17
【问题描述】:
我有一个 csv 文件,我可以在其中插入第一次运行的标题,但是当我再次写入文件时,程序会再次创建标题。有没有办法检查 csv 文件是否有标题,如果有则跳过它?
【问题讨论】:
我有一个 csv 文件,我可以在其中插入第一次运行的标题,但是当我再次写入文件时,程序会再次创建标题。有没有办法检查 csv 文件是否有标题,如果有则跳过它?
【问题讨论】:
您是否只是将记录附加到现有文件中,在这种情况下,程序会在先前写入之后附加标头?
您能否简单地检查文件是否存在,如果存在并且大小不为零,则假设文件头已经存在?
【讨论】:
您必须阅读第一行并测试第一列是否与您期望的列标题匹配。由于您的代码插入了标题,我假设它知道标题应该是什么样子。您可以在标题检查中使用相同的变量。类似的东西:
String HEADER = "column1,column2,column3";
String COLUMN1 = HEADER.substring(0,HEADER.indexOf(",")+1); //Or just set it to "column1", but that would be violating the DRY principle!
//...Get line1, column1 from the file you are reading
if(!line1Column1.equals(COLUMN1))
{
out.write(HEADER);
}
// Print rows of data...
【讨论】:
HEADER.substring(0,HEADER.indexOf(",")+1); 你不需要加 1,这将返回 column1, 而不是 column1
如果你插入了标题,你不能让它开始吗,例如用破折号(#),如果存在就不要再写了吗?
问候, 斯蒂芬
【讨论】:
您是使用任何框架来执行此操作还是您自己执行此操作.. 代码 sn-p 会有所帮助...或者您可以放置一个布尔标志来检查或硬匹配标准标题代码的第一行以检查它...
【讨论】: