使用Netbeans写入csv文件不起作用



我目前正在开发一个车载云程序,该程序获取客户信息和车主信息,并将其存储在单独的.csv文件中。我使用一个数组来分隔每个对象,这样就更容易放在csv文件中,但问题是,当我运行程序时,它会执行,但不会写入文件。我使用提交按钮将信息存储在一个数组中,以便以后在写入文件时使用。我试着不使用文件的直接路径,例如("ownerLog.csv"(

-SubmitButton代码

private void submit2ActionPerformed(java.awt.event.ActionEvent evt) {                                        


String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date());
String[] tempArr = {OID.getText(), VModel.getText(), (String)Vehcolors.getSelectedItem(),
vplate.getText(), (String)Rday.getSelectedItem(), (String)RMonths.getSelectedItem(), timeStamp};
//adding the temporary data array to the total client entries for file writing at later point 
ownerEntries.add(tempArr);

-写入.csv文件代码

try {

try (FileWriter csvWriter = new FileWriter("C:\Users\juals\Documents\NetBeansProjects\GUIFormExamples\src\ownerLog.csv")) {
csvWriter.append("Owner id");
csvWriter.append(",");
csvWriter.append("Vehicle Model");
csvWriter.append(",");
csvWriter.append("Vehicle Color");
csvWriter.append(",");
csvWriter.append("Vehicle Plate Number");
csvWriter.append(",");
csvWriter.append("Approx. Residency Days");
csvWriter.append(",");
csvWriter.append("Approx Residency Months");
csvWriter.append(",");
csvWriter.append("Timestamp");
csvWriter.append("n");

for(String[] entry: ownerEntries) {
System.out.println(String.join(",", entry));
csvWriter.append(String.join(",", entry));
csvWriter.append("n");
}
}

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

您既没有使用将数据写入文件的flush((,也没有使用先刷新然后关闭写入程序的close((。通常,您应该始终关闭任何写入程序/流等。你以前打开的。

字符串文件名是文件的路径。一个例子可以是";resources/data.csv";如果文件位于名为resources的文件夹中。在你的情况下,它可能是";src/data.csv";。以下是一些示例代码:

PrintWriter out; // a field
public void writeCsvFile(String filename) {
out = null;

try {
File file = new File(filename);
//System.out.println(file.getAbsolutePath());
FileWriter csvWriter = new FileWriter(file, true);
out = new PrintWriter(csvWriter);
out.append("n");
// Appending to CSV file
out.append("Owner id");
out.append(",");
out.append("Vehicle Model");
out.append(",");
out.append("Vehicle Color");
out.append(",");
out.append("Vehicle Plate Number");
out.append(",");
out.append("Approx. Residency Days");
out.append(",");
out.append("Approx Residency Months");
out.append(",");
out.append("Timestamp");
out.append("n");
for(String[] entry: ownerEntries) {
System.out.println(String.join(",", entry));
out.append(String.join(",", entry));
}

out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(out != null) {
out.close();
}
}
}

这里有一个最小的例子:

PrintWriter out; // a field
public void writeCsvFile(String filename) {
out = null;

try {
File file = new File(filename);
//System.out.println(file.getAbsolutePath());
FileWriter csvWriter = new FileWriter(file, true);
out = new PrintWriter(csvWriter);
// Appending to CSV file
out.append("First value");
out.append(",");
out.append("Second value");
out.append(",");
out.append("Third value");

out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(out != null) {
out.close();
}
}
}

最新更新