2012-11-26 102 views
1

我有一個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); 

但是,這並不保存文件。

回答

1

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

myfile.renameTo("neeFile") 
+1

這纔有意義,如果你想重命名的文件,是沒用的,如果你想有另一它的副本。 – carlspring

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

0

有一個文件名爲renameTo(new File("whatever you want"));方法如果你想將它用不同的名稱複製對象

+0

我需要保留當前文件,並以不同的名稱複製當前文件。 – Aviadjo

1

,我發現了這片代碼通過谷歌

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(); 
    } 
} 

現在你可以用

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

it's只是重要的是,這兩個文件存在,otherswise它會引發異常

相關問題