背景 - 我有一个将.html表文件转换为.csv文件的脚本TableToCSV,但是它要求我们通过控制台输入xyz.html。但是所选的文件并不总是带有.html扩展名,它们通常都有.xls - 尽管里面的内容是.html。所以我希望我的程序复制所选文件,然后制作一个副本(或一个临时文件),可以存储在C:\ Dtemp \中,然后最后将它从xyz.xls重命名为xyz.html
目前,它将所选文件重命名为xyz.html。
这是我的代码
final JFileChooser fileDialog = new JFileChooser();
JButton btnInputFile = new JButton("Input File");
btnInputFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//other code
int returnVal = fileDialog.showOpenDialog(rootPane);
if (returnVal == JFileChooser.APPROVE_OPTION) {
java.io.File file = fileDialog.getSelectedFile();
String name = file.getName();
name = name.substring(0, name.lastIndexOf("."));
name += ".html";
File newFile = new File(file.getParentFile(), name);
if (file.renameTo(newFile)) {
try {
TableToCSV tableToCSV = new TableToCSV(newFile, ',', '\"', '#', CSV.UTF8Charset );
System.out.println("action");
} catch (IOException e) {
e.printStackTrace();
}
//other code
答案 0 :(得分:0)
目前,您的代码会将输入文件显式重命名为新名称(file.renameTo(newFile)
)。如果你想复制文件,为什么不将“文件”复制到“newFile”。你必须自己复制(阅读file
并撰写newFile
)
(您可能想要检查输入文件的第一行,以确保它确实是一个html文件(通过查看内容)。