将JTable导出到csv FileNotFoundException

时间:2016-06-13 07:35:41

标签: java csv jtable export-to-csv

我有一个问题,我正在使用此处找到的代码 $max

然而,当运行代码时,它会抛出异常: 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));
    }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

找到答案,我将代码更改为以下内容:

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));
    }
}