将 JTable 导出到 csv FileNotFoundException

Exporting JTable to csv FileNotFoundException

我在使用此处找到的代码时遇到问题 https://sites.google.com/site/teachmemrxymon/java/export-records-from-jtable-to-ms-excel

但是当运行代码抛出异常时: java.io.FileNotFoundException:/home/david\test.csv(权限被拒绝)

我马上就发现了一个问题,因为它看起来使用 Windows 格式的文件路径而不是 Linux。

有什么办法可以改变吗?

我的代码如下:

private void saveBike1LapActionPerformed(java.awt.event.ActionEvent evt) {                                             
    JFileChooser bike1FileChooser = new JFileChooser();
    int option = bike1FileChooser.showSaveDialog(TrackerWindow.this);
    if(option == JFileChooser.APPROVE_OPTION){
        String filename = bike1FileChooser.getSelectedFile().getName(); 
        String path = bike1FileChooser.getSelectedFile().getParentFile().getPath();
        int len = filename.length();
        String ext = "";
        String file;
        if(len > 4){
    ext = filename.substring(len-4, len);
        }
        if(ext.equals(".csv")){
        file = path + "\" + filename; 
        }
        else{
        file = path + "\" + filename + ".csv"; 
        }
        exportBikeLapTimes(bike1LapTimes, new File(file));
    }
}

如有任何帮助,我们将不胜感激。

找到答案,我把代码改成下面的:

private void saveBike1LapActionPerformed(java.awt.event.ActionEvent evt) {                                             
    JFileChooser bike1FileChooser = new JFileChooser();
    int option = bike1FileChooser.showSaveDialog(TrackerWindow.this);
    if(option == JFileChooser.APPROVE_OPTION){
        String filename = bike1FileChooser.getSelectedFile().getName(); 
        String path = bike1FileChooser.getSelectedFile().getPath();
        int len = filename.length();
        String ext = "";
        String file;
        if(len > 4){
    ext = filename.substring(len-4, len);
        }
        if(ext.equals(".csv")){
        file = path; 
        }
        else{
        file = path + ".csv"; 
        }
        exportBikeLapTimes(bike1LapTimes, new File(file));
    }
}