JavaRush /Java блог /Random /Кофе-брейк #99. Как копировать файлы из одного каталога в...

Кофе-брейк #99. Как копировать файлы из одного каталога в другой на Java. Строки в Java

Статья из группы Random

Как копировать файлы из одного каталога в другой на Java

Источник: DZone Я давно занимаюсь программированием на Java, и вы не поверите, но до Java 7 в Java API не было метода копирования файлов. У нас были только такие варианты: написать это самостоятельно, используя FileInputStream, FileOutputStream и буфер для копирования байтов из одного в другой; или, что еще лучше, использовать метод FileChannel.transferTo() или Apache Commons FileUtils, которые были спасением в те дни и все еще существуют сегодня. Кофе-брейк #99. Как копировать файлы из одного каталога в другой на Java. Строки в Java - 1JDK сейчас эволюционировал, и уже есть достойный API для копирования файлов из одного каталога в другой. В этой статье я покажу вам, как мы копировали файлы из одного каталога в другой до Java 7, а также современный способ, который значительно упрощает эту задачу.

1. Копирование файлов из одного каталога в другой до Java 7

Зависимость: Apache Commons IO

1.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 есть стандартный метод копирования файлов: Files.copy. Он интегрируется с собственным вводом-выводом 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 block

e.printStackTrace();

}



}



}
Вы также можете копировать файлы на Java, написав код с использованием FileInputStream и FileOuputStream, но это не обязательно, если у вас установлена ​​Java 7. В качестве альтернативы также удобен класс Apache Commons IO FileUtils. Для высокоскоростного копирования и передачи файлов вы также можете воспользоваться преимуществами классов java.nio и FileChannel, но имейте в виду, что в Windows есть ошибка, которая не позволяет вам передавать более 64 ГБ данных канала.

Строки в Java

Источник: Dev.to Как и в других языках программирования, String в Java представляет собой последовательность символов. Но Java не реализует строку как массив символов, а рассматривает ее как полный объект типа String. Кофе-брейк #99. Как копировать файлы из одного каталога в другой на Java. Строки в Java - 2

Как создать строковый объект, используя новое ключевое слово и литералы

Есть два способа создания строкового объекта: с помощью ключевого слова new или с помощью литералов. Буквальное представление означает представление его значения в виде целого числа или строки. В приведенном ниже коде показано, как мы можем создать строку с помощью нового ключевого слова.

String a = new String();
Как мы знаем, ключевое слово new используется для создания экземпляра этого класса. Выше мы создали экземпляр “a” строки типа без символов. Чтобы создать строку со значением в ней, вы можете сделать это следующим образом.

char name[] = {'x','y','z'}
String a = new String(chars);
Выше мы создали символьный массив name [ ] со значениями “x”, “y”, “z”, а затем присвоили этот полный массив строке “a”. Мы использовали конструктор класса String для инициализации значения строки. Как мы видели выше, создание строки с использованием ключевого слова new немного путает и занимает много времени. Но есть действительно простой способ, и именно здесь литералы приходят нам на помощь.

String s = "xyz";
Вот как мы создаем строку в Java с помощью литералов. Для каждого строкового литерала в программе Java автоматически создает объект String с предоставленным ему начальным значением. Вы можете использовать строковый литерал в любом месте программы, чтобы создать из него строковый объект.

Пример строки

Перед вами код простой программы Hello world с несколькими строками.

public class HelloWorld {
    public static void main(String args[]) {

        String s1 = new String("Hello World using new keyword"); // Using new keyword
        String s2 = "Hello World using literals";

        System.out.println(s1);
        System.out.println(s2);
}
}
Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
partiec Уровень 33
28 сентября 2023
Спасибо. Но шота недораскрыта тема...