Почему у Java нет метода копирования файлов? Это похоже на такую очевидную вещь, и это спасает людей от написания таких вещей, как this example.Почему у Java нет копии файла?
ответ
В Java API отсутствует больше, чем просто копирование файлов. Вам может быть интересно проверить библиотеки Apache Commons. Например, IO library'sFileUtils предоставляет способы копирования файлов.
Да, когда я думаю про себя: «Почему эта функция не в Java?», Неизменно она реализуется «достоянием». – SingleShot
Что справедливо - Java - это язык, а не библиотека. Это означает, что вещи * реализуемы *, не обязательно реализуют их в библиотеках JDK. –
Это язык и библиотека (java.util. *). Почему я могу писать в файл, но не копировать его? –
Моя догадка заключается в том, что, когда была создана система файлов io, они решили, что они не хотят иметь дело с кросс-платформенными проблемами копирования файлов и пунтировать - то есть они сказали: «Это выполнимо другими, а не что общее ».
Одна вещь, о которой нужно помнить о Java, заключается в том, что она является кросс-платформенной, поэтому некоторые вещи сложнее из-за этой реальности.
«пишите один раз, отлаживайте всюду» – MattC
Возможно, но чтение байтов из входного потока и запись их в выходной поток переносимы повсюду. –
По той же причине у Java не так много других вещей. которые в конечном итоге реализуются внешними библиотеками. Я уверен, что вы можете легко найти такой library, или вы можете написать функцию.
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 ...)
Просто просматривая пакет Java 7 nio.files, похоже, что они добавили немного. –
- 1. Почему у меня нет файла Microsoft.VC80.MFC?
- 2. Почему у OraNet.dcu нет соответствующего .pas-файла?
- 3. Почему у меня нет файла .hgrc?
- 4. Почему у java нет детерминированных деструкторов?
- 5. Почему у java нет суффикса байтового типа?
- 6. Почему у Java 8 нет функции «myArray.stream()»?
- 7. Почему у клиентов нет?
- 8. Почему у узла нет getElementByTagName()?
- 9. Почему у некоторых писем нет строки заголовка?
- 10. Почему в Ruby нет метода глубокой копии?
- 11. Почему у меня нет xlrd?
- 12. Почему у boost нет make_scoped()?
- 13. Почему у GLKView нет контекста?
- 14. Почему у Rust нет союзов?
- 15. Почему у ActionScript нет «generics»?
- 16. Почему у Symfony2 нет моделей?
- 17. Почему у fixnum нет eigenclass?
- 18. Почему у React.js нет stateTypes?
- 19. Почему у меня нет свитка?
- 20. Почему у Scala нет указателя?
- 21. Почему у UDP нет флагов?
- 22. Почему у Ruby нет оператора! ==?
- 23. Почему у datetime.time нет astimezone?
- 24. Почему у MongoDB нет транзакций?
- 25. У меня нет gradle.build, почему?
- 26. Почему у SLComposeViewController нет делегата?
- 27. Почему у Википедии нет расширений?
- 28. Почему у меня нет изображений?
- 29. Почему у DecisionTreeClassifier нет prob_classify?
- 30. Почему у Него нет докшринга?
Это делает сейчас, как в Java 7. http://docs.oracle.com/javase/7/docs/api /java/nio/file/Files.html – ripper234