java:如何检查csv文件是否有头

java:如何检查csv文件是否有头,java,file,csv,io,Java,File,Csv,Io,我有一个csv文件,我可以在其中插入第一次运行的头,但当我再次写入文件时,程序将再次创建头。是否有办法检查csv文件是否有标题,如果有,则跳过它?您必须读取第一行,并测试第一列是否与您期望的列标题匹配。因为您的代码插入了头,所以我假设它知道头应该是什么样子。您可以在标题检查中使用相同的变量。比如: String HEADER = "column1,column2,column3"; String COLUMN1 = HEADER.substring(0,HEADER.indexOf(",")+1

我有一个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...

您必须读取第一行并测试第一列是否与预期的列标题匹配。因为您的代码插入了头,所以我假设它知道头应该是什么样子。您可以在标题检查中使用相同的变量。比如:

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...

您是在使用任何框架来实现这一点,还是在自己实现这一点。。一段代码片段将有助于。。。或者,您可以放置一个布尔标志来检查第一行,或者将第一行与标准头代码硬匹配以检查它…

您是在使用任何框架来执行此操作,还是自己执行此操作。。一段代码片段将有助于。。。或者,您可以设置一个布尔标志来检查或将第一行与标准标题代码硬匹配以检查它…

如果插入了标题,您不能让它开始,例如使用破折号(#)并且如果出现,则不再写入吗

问候,,
Stéphane

如果插入了标题,您不能让它开始,例如用破折号(#)并且如果出现,就不要再写了吗

问候,,
Stéphane

您是否只是将记录附加到现有文件中,在这种情况下,程序会在前一次写入之后附加头


您是否可以简单地检查文件是否存在,如果存在且大小不为零,则假定标头已存在?

您是否只是将记录附加到现有文件中,在这种情况下,程序会在上次写入后附加标头

您是否可以简单地检查文件是否存在,如果存在且大小不为零,则假定标头已经存在?

header.substring(0,header.indexOf(“,”)+1)
不需要加1,它将返回column1,而不是column1
HEADER.substring(0,HEADER.indexOf(“,”)+1)不需要加1,它将返回column1,而不是column1