Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Netbeans写入csv文件无效_Java_Csv_User Interface_Jbutton_File Handling - Fatal编程技术网

Java 使用Netbeans写入csv文件无效

Java 使用Netbeans写入csv文件无效,java,csv,user-interface,jbutton,file-handling,Java,Csv,User Interface,Jbutton,File Handling,我目前正在开发一个车载云程序,该程序获取客户信息和车主信息,并将其存储在单独的.csv文件中。我使用数组来分隔每个对象,使其更容易放入csv文件中,但问题是,当我运行程序时,它会执行,但不会写入文件。我使用提交按钮将信息存储在一个数组中,以便以后写入文件时使用。我尝试不使用文件的直接路径,例如(“ownerLog.csv”) -提交按钮代码 private void submit2ActionPerformed(java.awt.event.ActionEvent evt) {

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

-提交按钮代码

 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()先刷新然后关闭写入程序。通常,您应该始终关闭以前打开的任何writer/stream/等。

字符串文件名是文件的路径。例如,“resources/data.csv”,如果文件位于名为resources的文件夹中。在您的情况下,它可能是“src/data.csv”。下面是一些示例代码:

PrintWriter输出;//田地
public void writeCsvFile(字符串文件名){
out=null;
试一试{
文件=新文件(文件名);
//System.out.println(file.getAbsolutePath());
FileWriter csvWriter=新的FileWriter(文件,true);
out=新的打印编写器(csvWriter);
out.append(“\n”);
//附加到CSV文件
out.追加(“所有者id”);
out.追加(“,”);
out.追加(“车型”);
out.追加(“,”);
out.附加(“车辆颜色”);
out.追加(“,”);
外附(“车牌号”);
out.追加(“,”);
附加(“大约住院天数”);
out.追加(“,”);
附加(“约居住月”);
out.追加(“,”);
out.append(“时间戳”);
out.append(“\n”);
for(字符串[]项:ownerEntries){
System.out.println(String.join(“,”,entry));
out.append(String.join(“,”条目));
}
out.flush();
}捕获(例外e){
e、 printStackTrace();
}最后{
if(out!=null){
out.close();
}
}
}
下面是一个简单的例子:

PrintWriter输出;//田地
public void writeCsvFile(字符串文件名){
out=null;
试一试{
文件=新文件(文件名);
//System.out.println(file.getAbsolutePath());
FileWriter csvWriter=新的FileWriter(文件,true);
out=新的打印编写器(csvWriter);
//附加到CSV文件
out.追加(“第一个值”);
out.追加(“,”);
out.追加(“第二个值”);
out.追加(“,”);
out.追加(“第三值”);
out.flush();
}捕获(例外e){
e、 printStackTrace();
}最后{
if(out!=null){
out.close();
}
}
}

Hi我试过做csvWriter.flush();在我附加甚至关闭文件后,它仍然不写。flush函数是否在我附加的每个字符串后面?我假设一切完成后close()就会结束。