Java 如何知道是否所有内容都附加到csv?
这是我的密码:Java 如何知道是否所有内容都附加到csv?,java,csv,Java,Csv,这是我的密码: public static void writeDataToCSV(CustomObjectData customObjectData, int pageCounter) { try { int i = 0; int elementCounter = 0; List<String> values = new ArrayList<>(); String tmp = "";
public static void writeDataToCSV(CustomObjectData customObjectData, int pageCounter) {
try {
int i = 0;
int elementCounter = 0;
List<String> values = new ArrayList<>();
String tmp = "";
// System.out.println("Size of customobjectdata elements, should be 1000:
"+customObjectData.elements.size());
for (CustomObjectDataElements x : customObjectData.elements) {
for (FieldValue y : x.fieldValues) {
values.add(y.value);
}
for (String element : values) {
tmp += element + ";";
}
writer.append(tmp.substring(0, tmp.length() - 1) + "\r\n");
// count elements written into file to track in case of failure
elementCounter++;
if (elementCounter % 20 == 0) {
System.out.print("*");
}
System.out.println("");
FileWriter out = new FileWriter("data\\resumeat.txt");
System.out.print(elementCounter+pageCounter*1000+"");
out.write(elementCounter+pageCounter*1000+"");
out.close();
values.clear();
tmp = "";
}
System.out.println("Records: "+pageCounter*1000+" - "+
((pageCounter+1)*1000-1) +" written to csv.");
// System.out.println("Headers: "+CSVHeaders+" Values: "+CSVValues);
System.out.print(".");
if (i >= 99) {
System.out.println("");
i = -1;
}
i++;
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void writeDataToCSV(CustomObjectData CustomObjectData,int pageCounter){
试一试{
int i=0;
int元素计数器=0;
列表值=新的ArrayList();
字符串tmp=“”;
//System.out.println(“customobjectdata元素的大小应为1000:
“+customObjectData.elements.size());
for(CustomObjectDataElements x:customObjectData.elements){
用于(字段值y:x.fieldValues){
加上(y值);
}
for(字符串元素:值){
tmp+=元素+“;”;
}
writer.append(tmp.substring(0,tmp.length()-1)+“\r\n”);
//计数写入文件的元素,以便在出现故障时进行跟踪
elementCounter++;
if(元素计数器%20==0){
系统输出打印(“*”);
}
System.out.println(“”);
FileWriter out=新的FileWriter(“data\\resumeat.txt”);
系统输出打印(elementCounter+pageCounter*1000+“”);
out.write(元素计数器+页面计数器*1000+“”);
out.close();
value.clear();
tmp=“”;
}
System.out.println(“记录:“+pageCounter*1000+”-“+
((分页计数器+1)*1000-1)+“写入csv”);
//System.out.println(“标题:+CSV标题+”值:+CSV值);
系统输出打印(“.”);
如果(i>=99){
System.out.println(“”);
i=-1;
}
i++;
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
将记录附加到csv是一种简单的方法。不幸的是,我需要跟踪导入的每一条记录,所以如果程序崩溃,我可以从该记录开始
我试着将最后追加的元素数保存到txt文件中
但是,在txt文件,我写了例如2000年和csv的只是1987年的记录。这意味着如果我使用writer.append,它不会立即执行。即使我的计数器在那个附加之后。看起来程序不会一直等到附加它。我是否可以检查它是否已经被追加或有任何想法?如果使用a,它将按照其名称执行:我使用缓冲区。如果在某个时间点,您希望确保该缓冲区中的所有数据都已写入,则必须调用
writer.flush
(除非您已关闭writer
)。我认为您是对的,很快我将接受答案,谢谢。