我有一个JButton,它可以打开JFileChooser,然后将一个文件选择为一个名为“ file”的变量。

我想将所选文件重命名为“ Best.html”,然后将其提供给TableToCSV.java(java TableToCSV.class Best.html),这会将所选文件转换为.csv格式。

这是我的代码-

final JFileChooser  fileDialog = new JFileChooser();
    JButton btnInputFile = new JButton("Input File");
    btnInputFile.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

            int returnVal = fileDialog.showOpenDialog(rootPane);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
               java.io.File file = fileDialog.getSelectedFile();

            }

        }
    });


注-我想重命名,因为TableToCSV.java文件仅输入扩展名为.html的文件。

注意-TableToCSV.java与我的Java程序位于同一文件夹中。

最佳答案

您有两个选择...

你可以...

使用TableToCSV main方法...

TableToCSV.main(new String[]{file.getAbsolutePath()});


这与从命令行调用它基本相同

或者你可以...

使用TableToCSV构造函数...

TableToCSV tableToCSV = new TableToCSV( file, ',', '\"', '#', CSV.UTF8Charset );


问题在于,TableToCSV期望文件名的扩展名为4个字符...因此,如果您将扩展名为File.txt传递给它,则生成的文件不会像您一样出现预期会导致危险。

在这种情况下,您可以使用

String name = file.getName();
name = name.subString(0, name.lastIndexOf("."));
name += ".html";
File newFile = new File(file.getParentFile(), name);
if (file.renameTo(newFile)) {
    TableToCSV tableToCSV = new TableToCSV( newFile, ',', '\"', '#', CSV.UTF8Charset );
}


但是我讨厌重命名文件...

10-05 21:34