Java 使用opencsv时,需要在写入之前清除我的文件

Java 使用opencsv时,需要在写入之前清除我的文件,java,csv,opencsv,Java,Csv,Opencsv,我的问题是我填满了一个csv文件,但我希望每次我运行代码时清空csv,然后写入新数据 每次运行代码时,都会在FOR循环中从我的主体调用此方法 public static void csv_output() throws Exception { FileWriter fw = new FileWriter("output/out.csv", true); //true refers to append PrintWriter pw = new PrintWriter(fw, false

我的问题是我填满了一个csv文件,但我希望每次我运行代码时清空csv,然后写入新数据

每次运行代码时,都会在FOR循环中从我的主体调用此方法

public static void csv_output() throws Exception {
  FileWriter fw = new FileWriter("output/out.csv", true);
  //true refers to append
  PrintWriter pw = new PrintWriter(fw, false);
  //pw.flush();
  //clears the Buffer
  if (Auctionhouse.current_epoch == 1) {
    pw.print("Epoch");
    pw.print(",");
    for (int j = 0; j < Run_process.total_Agents; j++) {
      pw.print(Chromosome.chromosome.get(j).ID + "_Balance");
      pw.print(",");
    }
    for (int k = 0; k < Stockhouse.total_stocks; k++) {
      pw.print(Stockhouse.stockP.get(k).stock_Id);
      pw.print(",");
    }
  }
  pw.println();
  pw.print(Auctionhouse.current_epoch);
  pw.print(",");
  for (int i = 0; i < Run_process.total_Agents; i++) {
    String ag = Portfolio.Agent_balance.get(i) + "";
    pw.print(ag);
    pw.print(",");
  }
  for (int j = 0; j < Stockhouse.total_stocks; j++) {
    String pr = Auctionhouse.total_prices.get(Auctionhouse.current_epoch - 1).get(j) + "";
    pw.print(pr);
    pw.print(",");
  }
}
pw.flush();
pw.close();
fw.close(); 
public static void csv_output()引发异常{
FileWriter fw=新的FileWriter(“output/out.csv”,true);
//true表示追加
PrintWriter pw=新的PrintWriter(fw,false);
//pw.flush();
//清除缓冲区
如果(Auctionhouse.current_epoch==1){
印刷版(“纪元”);
印刷品(“,”);
对于(int j=0;j
冲洗不起作用


附言:我想追加,这样我就可以在每个循环中写入数据。

据我所知,在输入for循环之前,您希望有一个空的“output/out.csv”文件。因此,只要在程序启动时删除该文件(如果存在)

File outFile = new File("output/out.csv");

// delete out file if it exists
if (outFile.exists()) {
    System.out.println("Old out.csv file exists. Removing...);
    outFile.delete();
}

据我所知,在输入for循环之前,您希望有一个空的“output/out.csv”文件。因此,只要在程序启动时删除该文件(如果存在)

File outFile = new File("output/out.csv");

// delete out file if it exists
if (outFile.exists()) {
    System.out.println("Old out.csv file exists. Removing...);
    outFile.delete();
}
如果要清除“output/out.csv”,只需将
FileWriter
的参数更改为
false

FileWriter fw = new FileWriter("output/out.csv", false);
正如在第二个参数的文档中所说的,指定是否要追加。在您的情况下,如果要清除数据,只需传递
false
,它就会写入文件的开头。您应该在应用程序启动时执行此代码

编辑: 清除文件内容而不删除它。如果实现此代码,则需要捕获
IOexception
,并可能创建一个函数来执行代码,但这应该可以做到

   public static void clearCsv() throws Exception {
        FileWriter fw = new FileWriter("output/out.csv", false); 
        PrintWriter pw = new PrintWriter(fw, false);
        pw.flush();
        pw.close();
        fw.close();
    }
如果要清除“output/out.csv”,只需将
FileWriter
的参数更改为
false

FileWriter fw = new FileWriter("output/out.csv", false);
正如在第二个参数的文档中所说的,指定是否要追加。在您的情况下,如果要清除数据,只需传递
false
,它就会写入文件的开头。您应该在应用程序启动时执行此代码

编辑: 清除文件内容而不删除它。如果实现此代码,则需要捕获
IOexception
,并可能创建一个函数来执行代码,但这应该可以做到

   public static void clearCsv() throws Exception {
        FileWriter fw = new FileWriter("output/out.csv", false); 
        PrintWriter pw = new PrintWriter(fw, false);
        pw.flush();
        pw.close();
        fw.close();
    }

对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。另一方面,你的问题的文本令人困惑,因为它是矛盾的。在顶部,你说你想清除文件,但在底部,你说你想附加信息。你说的刷新不工作是什么意思?对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。另一方面,你的问题的文本令人困惑,因为它是矛盾的。在顶部,你说要清除文件,但在底部,你说你想附加信息。你说刷新不工作是什么意思?每次我运行代码时,我都会在调用该函数的地方有一个循环。因此,为了在每个循环中写入新数据,我需要附加数据。当我想再次运行项目时,我需要在同一个文件中插入新数据,因此我需要清除该文件@用户2102151查看stolzem的答案。您可以在应用程序开始时删除该文件,或者在功能中确定是否需要追加。但是,依我看,我会在开始追加之前删除该文件。问题是我需要以某种方式清除它,而不是删除它!此外,我还需要在每个循环中追加,但每次运行项目时都要清除。例如,现在我在运行项目之前清除excel(csv)文件…@user2102151是否需要该文件存在?因为如果你不需要它,你可以删除它,
FileWriter
会为你创建它。但是如果我需要这个文件并且只想清除它,我会用一些代码编辑我的问题。请参阅我的编辑以清除内容。如果你有更多的问题,请要求更多的解释。每次我运行代码时,我都会在调用此函数的地方有一个循环。因此,为了在每个循环中写入新数据,我需要附加数据。之后,当我想再次运行项目时,我需要在同一个文件中插入新数据,因此我需要清除该文件@用户2102151查看stolzem的答案。您可以在应用程序开始时删除该文件,或者在功能中确定是否需要追加。但是,依我看,我会在开始追加之前删除该文件。问题是我需要以某种方式清除它,而不是删除它!此外,我还需要在每个循环中追加,但每次运行项目时都要清除。例如,现在我在运行项目之前清除excel(csv)文件…@user2102151是否需要该文件存在?因为如果你不需要它,你可以删除它,
FileWriter
会为你创建它。但是如果我需要这个文件并且只想清除它,我会用一些代码编辑我的问题。请参阅我的编辑以清除内容。如果你有更多的问题,就要求更多的解释。