JavaRush /Java блог /Random UA /Кава-брейк #99. Як копіювати файли з одного каталогу до і...

Кава-брейк #99. Як копіювати файли з одного каталогу до іншого на Java. Рядки в Java

Стаття з групи Random UA

Як копіювати файли з одного каталогу до іншого на 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);
}
}
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ