Привет, ребята, я уже давно программирую на Java, и вы не поверите, но до Java 7 в Java API не было метода копирования файлов |/. В то время у нас были варианты: либо написать его самостоятельно, используя FileInputStream, FileOutputStream и буфер для копирования байтов из одного в другой, либо, что еще лучше, использовать * FileChannel.transferTo() * метод или просто используйте FileUtils Apache Commons, который был спасением жизни в те дни и даже сегодня.
JDK теперь эволюционировал, и у вас есть приличный API для копирования файлов из одного каталога в другой. В этой статье я покажу вам как предварительный Java-код для копирования файлов из одного каталога в другой, так и код post Java 7, который значительно упрощает эту задачу.
1. Копирование файла из каталога в другой до Java 7
Зависимость: Apache Commons IO
1. FileUtils.CopyFile(Источник файла, место назначения файла)
Этот метод копирует файл в новое местоположение, сохраняя временные метки файла
Этот метод копирует содержимое указанного исходного файла в указанный конечный файл. Каталог, содержащий целевой файл, создается, если он не существует т. Если целевой файл существует, то этот метод перезапишет его.
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; /*** Java program to copy a file from one directory to another e.g. from src to dest ** @author Javin*/ public class FileCopyDemo { public static void main(String args[]) { // Using Apache Commons FileUtils class File srcFile = new File("bin/HelloWorld.class"); File destFile = new File("target/HelloWorld.class"); try { FileUtils.copyFile(srcFile, destFile); System.out.println("File successfully copied in Java"); } catch (IOException e) { e.printStackTrace(); } } } Output: System.out.println("File successfully copied in Java");
1.2 Копирует файл в каталог с сохранением метки времени
Этот метод копирует содержимое указанного исходного файла в файл с тем же именем в указанном целевом каталоге. Целевой каталог создается, если он не существует/| т. Если целевой файл существует, то этот метод перезапишет его.
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; /*** Java program to copy a file from one directory to another like from src to dest ** @author Javin Paul*/ public class Testing { public static void main(String args[]) { // Using Apache Commons FileUtils class File srcFile = new File("bin/HelloWorld.class"); File destDir = new File("target"); try { FileUtils.copyFileToDirectory(srcFile, destDir); System.out.println("File successfully copied to destination directory in Java"); } catch (IOException e) { e.printStackTrace(); } } } Output: File successfully copied to destination directory in Java
2. Копирование файлов из одного каталога в другой с помощью Java 7 NIO 2 API
В Java 7 существует стандартный метод копирования файлов на java:
Файлы.копировать.
Он интегрируется с собственным вводом-выводом O/S для обеспечения высокой производительности.
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import static java.nio.file.StandardCopyOption.*; import static java.nio.file.LinkOption.*; /*** Java program to copy file using Java 7 Files.copy() method** @author Javin Paul*/ public class FileCopyDemo { public static void main(String args[]) { try { Path bytes = Files.copy(new Java.io.File("bin/HelloWorld.class").toPath(), new java.io.File("target/HelloWorld.class").toPath(), REPLACE_EXISTING, COPY_ATTRIBUTES, NOFOLLOW_LINKS); System.out.println("File successfully copied using Java 7 way"); } catch (IOException e) { // TODO Auto-generated catch blocke.printStackTrace(); } } }
Вы также можете копировать файлы на Java, написав код с помощью FileInputStream и FileOuputStream
В качестве альтернативы также удобен класс Apache commons IO FileUtils. Для высокоскоростного копирования и передачи файлов вы также можете воспользоваться java.nio и классом FileChannel , но имейте в виду, что в Windows есть ошибка, которая не позволяет передавать более 64 ГБ данных канала. Ошибка Windows, связанная с передачей Из-за невозможности копировать потоки размером более 64 МБ в одном месте?
Другое Статьи по программированию на Java ты Может понравиться: Другое Статьи о Java и программировании возможно, вам понравится читать.
- Дорожная карта разработчика Java
- 5 Свободная пружина Курсы фреймворка для разработчиков Java
- Топ-5 Курсов для изучения микросервисов с Spring Boot
- 10 Курсов по изучению веб-сервиса RESTful на Java
- Топ-5 курсов для углубленного изучения Spring
- 5 Основных фреймворков, которые разработчик Java должен изучить
- 5 Онлайн-курсов для бесплатного изучения Core Java
- Топ-5 курсов по шаблонам проектирования Java для опытных Java-разработчиков
- Топ-7 Курсов для изучения микросервисов на Java
- 10 Курсов для изучения Spring Security и OAuth2
- 10 курсов по программированию/Кодированию Собеседований при приеме на работу
- 10 Продвинутых курсов Spring Boot для разработчиков Java
- Топ-5 Курсов по изучению Spring Cloud для начинающих
- 5 Курсов по изучению сценариев оболочки в Linux
- 10 Бесплатных руководств и курсов Spring Boot для разработчиков Java
Спасибо, что прочитали эту статью до сих пор. Если вам нравится этот учебник по Java, пожалуйста, поделитесь им со своими друзьями и коллегами. Если у вас есть какие-либо вопросы или отзывы, пожалуйста, оставьте сообщение.
P. S. – Если вы новичок в мире Java и ищете бесплатные курсы для изучения Java с нуля, вы также можете взглянуть на мои любимые бесплатные курсы Java на Medium. Здесь есть одни из лучших бесплатных обучающих курсов Java для изучения Java онлайн.
Оригинал: “https://dev.to/javinpaul/how-to-copy-files-in-java-example-3clf”