我有兩個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. 複製到另一個文件
- 5. 將一個文件複製到另一個文件(Unix/C)?
- 6. 將png文件從一個文件夾複製到另一個
- 7. 將x文件從一個文件夾複製到另一個
- 8. 複製逆向一個文件的內容複製到另一個文件
- 9. 複製文本從一個文本文件到另一個
- 10. 複製文件從文件夾複製到另一個用C#
- 11. 將文件從一個目錄複製到另一個目錄
- 12. 批 - 從一個文件複製特定文本到另一個
- 13. 將文件的一部分複製到另一個文件
- 14. 使用java將文件從一個solaris 9複製到另一個使用java
- 15. SQLite的iOS上 - SQL從一個文件複製到另一個
- 16. 從一個Excel文件複製到另一個宏的宏
- 17. 從一個目錄的文件複製到另一個目錄
- 18. Java只複製丟失的文件從目錄到另一個
- 19. 反覆將一個文件的內容複製到另一個文件
- 20. 複製到另一個
- 21. 將一個plist複製到另一個
- 22. 從一個arrayList複製到另一個
- 23. 將一個NSString複製到另一個
- 24. 從一個文本文件複製一個特定的列到另一個
- 25. 拷貝一個文件到另一個複製
- 26. 如何將文件從一個EBS複製到另一個?
- 27. 將3gp moov原子從一個文件複製到另一個
- 28. 從一個FTP目錄複製所有文件到另一個
- 29. 將行從一個數據庫文件複製到另一個
- 30. 將文件從一個目錄複製到另一個目錄
見http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java – TwentyMiles 2010-03-26 00:19:59