【问题标题】:Don't create a new CSV file each time不要每次都创建新的 CSV 文件
【发布时间】:2014-07-29 02:43:20
【问题描述】:

所以我想为我的工作做点什么,但每次我使用这种方法(我在互联网上找到的)它都会创建一个新的 CSV 文件,但我想每次都添加数据,而不删除以前的数据在那里。

            public static void generateCsvFile(String sFileName) {
            try {
                NummerS = Nummer.getText();
                LocatiesS = Locatie.getText();
                LoginS = Login.getText();
                Nummer5S = Nummer5.getText();
                Nummer1S = Nummer1.getText();
                DatumS = Datum.getText();


                FileWriter writer = new FileWriter(sFileName);
                writer.append(NummerS);
                writer.append(';');
                writer.append(LocatiesS);
                writer.append(';');
                writer.append(LoginS);
                writer.append(';');
                writer.append(DatumS);
                writer.append(';');
                writer.append(Nummer1S);
                writer.append(';');
                writer.append(Nummer5S);
                writer.append(';');
                if(listt.getSelectedValue() != null)
                {
                writer.append(listt.getSelectedValue().toString());
                }
                Workbook workbook = null;
                try {
                    workbook = Workbook.getWorkbook(new File("F:\\test.xls"));
                } catch (BiffException e1) {

                    e1.printStackTrace();
                } catch (IOException e1) {

                    e1.printStackTrace();
                }

                writer.append(';');
                Sheet sheet = workbook.getSheet(0);
                for(Cell c : sheet.getColumn(1)){
                    if(listt.getSelectedValue() != null)
                    {
                      if(c.getContents().contains(listt.getSelectedValue().toString())){

                         System.out.println(c.getColumn() + " , " + c.getRow());
                         writer.append(sheet.getCell(c.getColumn()+1,c.getRow()).getContents());
                      } else {

                      }
                }
                }
                // generate whatever data you want
                writer.append("\n");
                writer.flush();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

这就是我调用该方法的地方。

if(e.getSource().equals(save)){
    generateCsvFile("f:\\testss.csv");
    JOptionPane.showMessageDialog(null, "Saved!");
}

【问题讨论】:

标签: java file csv file-io


【解决方案1】:

您在创建 FileWriter 时调用了错误的构造函数。改写为:

new FileWriter(sFileName, true);

这应该会保留您的数据。 Here 是文档的直接链接。

【讨论】:

  • 我这样做了,但它仍然覆盖它:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
相关资源
最近更新 更多