我有兩個java.io.File對象,文件1和文件2。我想將文件1中的內容複製到文件2。有沒有辦法做到這一點沒有我不必創建一個讀取文件1的方法和寫入到file2的Java IO到一個文件複製到另一個
回答
不,沒有內置的方法來做到這一點。最接近你想要完成的任務是從FileOutputStream
的transferFrom
方法,像這樣:
FileChannel src = new FileInputStream(file1).getChannel();
FileChannel dest = new FileOutputStream(file2).getChannel();
dest.transferFrom(src, 0, src.size());
而且不要忘了處理異常和關閉一切在finally
塊。
哇。你教過我。 – 2010-03-26 00:56:21
此答案的更完整(正確)版本可在此處獲得:http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java/115086#115086。由於http://stackoverflow.com/users/92937/twentymiles上學我們大家。 – vkraemer 2010-03-26 03:20:19
完整而高效的答案:https://gist.github.com/mrenouf/889747 – 2013-05-08 13:58:38
號每次長時間的Java程序員都有自己的效用帶,包括這種方法的標準方式。這是我的。
public static void copyFileToFile(final File src, final File dest) throws IOException
{
copyInputStreamToFile(new FileInputStream(src), dest);
dest.setLastModified(src.lastModified());
}
public static void copyInputStreamToFile(final InputStream in, final File dest)
throws IOException
{
copyInputStreamToOutputStream(in, new FileOutputStream(dest));
}
public static void copyInputStreamToOutputStream(final InputStream in,
final OutputStream out) throws IOException
{
try
{
try
{
final byte[] buffer = new byte[1024];
int n;
while ((n = in.read(buffer)) != -1)
out.write(buffer, 0, n);
}
finally
{
out.close();
}
}
finally
{
in.close();
}
}
沒有copyFileToInputStream? – 2010-03-26 00:35:21
這是一個*摘錄*。 :) – 2010-03-26 00:56:01
如果你想偷懶,僥倖從Apache的IOCommons
寫最少的代碼使用 FileUtils.copyFile(src, dest)
這是要走的路! – 2010-03-26 11:41:04
我是最小代碼的粉絲。不知道爲什麼使用實用程序包是「懶惰」的。我喜歡StringUtils。 – 2014-02-18 20:32:36
或者使用Files.copy(file1,file2)從谷歌的番石榴庫。
由於Java 7您可以使用Java標準庫中的Files.copy()
。
您可以創建一個包裝方法:
public static void copy(String sourcePath, String destinationPath) throws IOException {
Files.copy(Paths.get(sourcePath), new FileOutputStream(destinationPath));
}
,可以通過以下方式使用:
copy("source.txt", "dest.txt");
在的Java 7可以使用Files.copy()
而且非常重要的是:待辦事項不要忘記創建新文件後關閉的OutputStream。
OutputStream os = new FileOutputStream(targetFile);
Files.copy(Paths.get(sourceFile), os);
os.close();
- 1. Java從一個文件複製到另一個文件,一行一行,間隔
- 2. 從一個文件到另一個文件的高效複製
- 3. 複製文件夾到另一個
- 4. 將png文件從一個文件夾複製到另一個
- 5. 將x文件從一個文件夾複製到另一個
- 6. 將文件從一個目錄複製到另一個目錄
- 7. 使用java將文件從一個solaris 9複製到另一個使用java
- 8. 從一個目錄的文件複製到另一個目錄
- 9. 從一個Excel文件複製到另一個宏的宏
- 10. SQLite的iOS上 - SQL從一個文件複製到另一個
- 11. 將一個NSString複製到另一個
- 12. 拷貝一個文件到另一個複製
- 13. 如何將文件從一個EBS複製到另一個?
- 14. 將3gp moov原子從一個文件複製到另一個
- 15. 將文件從一個目錄複製到另一個目錄
- 16. 複製文件從一個目錄到另一個詹金斯
- 17. 將文件從一個目錄複製到另一個目錄
- 18. 將圖像從一個文件夾複製到另一個
- 19. 將文件從一個目錄複製到另一個目錄
- 20. 如何將一個文件複製到另一個vb.net 2008
- 21. 從一個目錄複製文件到另一個python
- 22. 將文件從一個目錄複製到另一個目錄
- 23. Python:將CSV文件從一個RPi複製到另一個
- 24. 將文件從一個位置複製到另一個位置
- 25. 將文件從一個位置複製到另一個位置
- 26. 複製一個文件的內容複製到另一個在python
- 27. 複製或移動一個文件從一個FTP服務器到另一個
- 28. 從一個文本框複製一個輸入到另一個
- 29. 從python中將文件從一個文件複製到另一個文件
- 30. 使用vbscript將文件從一個文件夾複製到另一個文件
見http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java – TwentyMiles 2010-03-26 00:19:59