2009-10-29 3 views
4

Почему у Java нет метода копирования файлов? Это похоже на такую ​​очевидную вещь, и это спасает людей от написания таких вещей, как this example.Почему у Java нет копии файла?

+1

Это делает сейчас, как в Java 7. http://docs.oracle.com/javase/7/docs/api /java/nio/file/Files.html – ripper234

ответ

13

В Java API отсутствует больше, чем просто копирование файлов. Вам может быть интересно проверить библиотеки Apache Commons. Например, IO library'sFileUtils предоставляет способы копирования файлов.

+2

Да, когда я думаю про себя: «Почему эта функция не в Java?», Неизменно она реализуется «достоянием». – SingleShot

+0

Что справедливо - Java - это язык, а не библиотека. Это означает, что вещи * реализуемы *, не обязательно реализуют их в библиотеках JDK. –

+0

Это язык и библиотека (java.util. *). Почему я могу писать в файл, но не копировать его? –

7

Моя догадка заключается в том, что, когда была создана система файлов io, они решили, что они не хотят иметь дело с кросс-платформенными проблемами копирования файлов и пунтировать - то есть они сказали: «Это выполнимо другими, а не что общее ».

Одна вещь, о которой нужно помнить о Java, заключается в том, что она является кросс-платформенной, поэтому некоторые вещи сложнее из-за этой реальности.

+2

«пишите один раз, отлаживайте всюду» – MattC

+0

Возможно, но чтение байтов из входного потока и запись их в выходной поток переносимы повсюду. –

2

По той же причине у Java не так много других вещей. которые в конечном итоге реализуются внешними библиотеками. Я уверен, что вы можете легко найти такой library, или вы можете написать функцию.

6

java.io.File - относительно простой класс, введенный в 1.0. В JDK 1.0 этого не было - в основном это связано с поддержкой апплетов и компилятором javac. Я предполагаю, что для его расширения не было большого давления - апплеты и корпоративное программное обеспечение не ориентированы в этом направлении.

Однако в I/O для JDK7 были добавлены партии. В том числе [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, похоже, что они добавили немного. –

Смежные вопросы