2009-10-29 101 views
4

爲什麼Java沒有文件複製方法?這似乎是一件非常明顯的事情,它可以幫助人們避免編寫諸如this example之類的東西。爲什麼Java沒有文件拷貝?

+1

現在呢,因爲Java 7的http://docs.oracle.com/javase/7/docs/api /java/nio/file/Files.html – ripper234 2011-11-27 10:05:06

回答

13

Java API缺少的不僅僅是文件複製。您可能有興趣查看Apache Commons庫。例如,IO library'sFileUtils提供文件複製方法。

+2

是的,每當我想到自己「爲什麼這個功能不是Java?」時,它總是由「公共」實現。 – SingleShot 2009-10-29 17:12:08

+0

這是公平的 - Java是一種語言,而不是圖書館。它旨在使事物*可實現*,不一定在JDK庫中實現它們。 – 2009-10-29 17:16:08

+0

這是一種語言和一個庫(java.util。*)。爲什麼我可以寫入一個文件,但不能複製一個文件? – 2009-10-29 17:31:33

7

我的猜測是因爲當編寫File io系統時,他們決定不想處理複製文件的跨平臺問題,並且被踢出 - 即他們說「這可以被其他人操作,而不是那個共同點「。

要記住Java的一件事是它是跨平臺的,所以有些事情因爲這個現實而變得更加困難。

+2

「編寫一次,無處不在調試」 – MattC 2009-10-29 17:14:59

+0

也許,但是從輸入流中讀取字節並將它們寫入輸出流是隨處可見的。 – 2009-10-29 23:12:48

2

出於同樣的原因Java沒有很多其他的東西。最終由外部圖書館實施。 我相信你很容易找到這樣一個library,或者你可以寫一個函數。

6

java.io.File是1.0中介紹的一個相對簡單的類。 JDK 1.0沒有太多內容 - 主要與支持applet和javac編譯器有關。我想沒有太大的壓力來擴展它 - 小程序和企業軟件不是朝着這個方向發展的。

但是,很多已添加到JDK7的I/O中。包括[java.nio.file.Path.copyTo] [1]。

[1]:http://download.java.net/jdk7/docs/api/java/nio/file/Path.html#copyTo(java.nio.file.Path,java.nio.file.CopyOption ...)

+0

只看Java 7 nio.files包,看起來他們增加了很多。 – 2009-10-29 17:43:38