2

我有一个 Java 表单,您可以在其中选择要打开的文件。我有那个文件:

File my_file = ...

我希望能够将我的文件保存为不同的名称。如何使用“文件 my_file”来做到这一点?

我试过了:

File current_file = JPanel_VisualizationLogTab.get_File();
String current_file_name = current_file.getName();
//String current_file_extension = current_file_name.substring(current_file_name.lastIndexOf('.'), current_file_name.length()).toLowerCase();
FileDialog fileDialog = new FileDialog(new Frame(), "Save", FileDialog.SAVE);
fileDialog.setFile(current_file_name);
fileDialog.setVisible(true);

但这不会保存文件。

4

4 回答 4

3

我建议使用该Apache Commons IO库来简化此任务。使用这个库,您可以使用方便的FileUtils类,它提供了许多帮助函数来处理文件 IO。我想你会对这个copy(File file, File file)功能感兴趣

try{
    File current_file = JPanel_VisualizationLogTab.get_File();
    File newFile = new File("new_file.txt");
    FileUtils.copyFile(current_file, newFile);
} catch (IOException e){
    e.printStackTrace();
}

文档

于 2012-11-26T10:42:34.280 回答
2

如果你想用不同的名字复制它,我通过谷歌找到了这段代码

public static void copyFile(File in, File out) throws IOException {
    FileChannel inChannel = new FileInputStream(in).getChannel();
    FileChannel outChannel = new FileOutputStream(out).getChannel();
    try {
        inChannel.transferTo(0, inChannel.size(), outChannel);
    } catch (IOException e) {
        throw e;
    } finally {
        if (inChannel != null)
            inChannel.close();
        if (outChannel != null)
            outChannel.close();
    }
} 

现在你可以用

    File inF = new File("/home/user/inputFile.txt");
    File outF = new File("/home/user/outputFile.txt");
    copyFile(inF, outF); 

两个文件都存在很重要,否则它会引发异常

于 2012-11-26T13:42:10.573 回答
1

您可以重命名文件名。
利用:

myfile.renameTo("neeFile")
于 2012-11-26T10:41:35.283 回答
0

There is a Method called renameTo(new File("whatever you want")); for File Objects

于 2012-11-26T10:43:12.637 回答