我有一个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 );
}
但是我讨厌重命名文件...