将文件另存为其他名称

时间:2012-11-26 10:37:13

标签: java file save

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

File my_file = ...

我希望能够将我的文件另存为其他名称。 我怎么能用“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 个答案:

答案 0 :(得分: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();
}

Documentation

答案 1 :(得分: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); 

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

答案 2 :(得分:1)

您可以重命名文件名 使用:

myfile.renameTo("neeFile")

答案 3 :(得分:0)

文件对象有一个名为renameTo(new File("whatever you want"));的方法