- Копирование всех файлов java
- Кофе-брейк #99. Как копировать файлы из одного каталога в другой на Java. Строки в Java
- Как копировать файлы из одного каталога в другой на Java
- 1. Копирование файлов из одного каталога в другой до Java 7
- Зависимость: Apache Commons IO
- 2. Копирование файлов из одного каталога в другой с помощью Java 7 NIO 2 API.
- Строки в Java
- Как создать строковый объект, используя новое ключевое слово и литералы
- Пример строки
- Copying a File or Directory
Копирование всех файлов java
Я один понят условия задачи «поверхностное копирование» буквально, (Напиши программу, которая будет считывать с клавиатуры пути к двум директориям и копировать файлы из одной директории в другую (только файлы, директории игнорируй). и стал копировать файлы из первой во вторую и из второй в первую?
Синтаксический сахар var не работает с потоками почему то , подскажите что не так ? И метод of почему то подчеркивается красным
Метод writeString(Path path, String str) предназначен для записи строки в файл, указанный в объекте Path. При вызове этого метода Java создает файл, если он еще не существует, и записывает в него указанную строку. Если файл уже существует, содержимое файла будет заменено на указанную строку. Процесс работы метода writeString выглядит следующим образом: Определяется путь к файлу, который нужно создать или перезаписать, с помощью объекта Path. Создается объект Charset с кодировкой по умолчанию, если не указано другое. Строка, которую нужно записать в файл, преобразуется в последовательность байтов с помощью выбранной кодировки. Создается объект OutputStream для записи байтов в файл. Записываются байты в файл. OutputStream закрывается, чтобы сохранить данные в файле. Вот пример использования метода writeString:
import java.nio.file.Files; import java.nio.file.Path; import java.nio.charset.StandardCharsets; import java.io.IOException; public class Example < public static void main(String[] args) < String content = "Hello, world!"; Path file = Path.of("example.txt"); try < Files.writeString(file, content, StandardCharsets.UTF_8); >catch (IOException e) < e.printStackTrace(); >> >
Этот код создаст файл «example.txt» в текущем каталоге и запишет в него строку «Hello, world!» в кодировке UTF-8. Если файл уже существует, содержимое файла будет заменено на эту строку.
Кофе-брейк #99. Как копировать файлы из одного каталога в другой на Java. Строки в Java
Как копировать файлы из одного каталога в другой на Java
Источник: DZone Я давно занимаюсь программированием на Java, и вы не поверите, но до Java 7 в Java API не было метода копирования файлов. У нас были только такие варианты: написать это самостоятельно, используя FileInputStream, FileOutputStream и буфер для копирования байтов из одного в другой; или, что еще лучше, использовать метод FileChannel.transferTo() или Apache Commons FileUtils, которые были спасением в те дни и все еще существуют сегодня. JDK сейчас эволюционировал, и уже есть достойный 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 .
Как создать строковый объект, используя новое ключевое слово и литералы
Есть два способа создания строкового объекта: с помощью ключевого слова new или с помощью литералов. Буквальное представление означает представление его значения в виде целого числа или строки. В приведенном ниже коде показано, как мы можем создать строку с помощью нового ключевого слова.
Как мы знаем, ключевое слово new используется для создания экземпляра этого класса. Выше мы создали экземпляр “a” строки типа без символов. Чтобы создать строку со значением в ней, вы можете сделать это следующим образом.
char name[] = String a = new String(chars);
Выше мы создали символьный массив name [ ] со значениями “x”, “y”, “z”, а затем присвоили этот полный массив строке “a”. Мы использовали конструктор класса String для инициализации значения строки. Как мы видели выше, создание строки с использованием ключевого слова new немного путает и занимает много времени. Но есть действительно простой способ, и именно здесь литералы приходят нам на помощь.
Вот как мы создаем строку в Java с помощью литералов. Для каждого строкового литерала в программе Java автоматически создает объект String с предоставленным ему начальным значением. Вы можете использовать строковый литерал в любом месте программы, чтобы создать из него строковый объект.
Пример строки
Copying a File or Directory
You can copy a file or directory by using the copy(Path, Path, CopyOption. ) method. The copy fails if the target file exists, unless the REPLACE_EXISTING option is specified.
Directories can be copied. However, files inside the directory are not copied, so the new directory is empty even when the original directory contains files.
When copying a symbolic link, the target of the link is copied. If you want to copy the link itself, and not the contents of the link, specify either the NOFOLLOW_LINKS or REPLACE_EXISTING option.
This method takes a varargs argument. The following StandardCopyOption and LinkOption enums are supported:
- REPLACE_EXISTING – Performs the copy even when the target file already exists. If the target is a symbolic link, the link itself is copied (and not the target of the link). If the target is a non-empty directory, the copy fails with the DirectoryNotEmptyException exception.
- COPY_ATTRIBUTES – Copies the file attributes associated with the file to the target file. The exact file attributes supported are file system and platform dependent, but last-modified-time is supported across platforms and is copied to the target file.
- NOFOLLOW_LINKS – Indicates that symbolic links should not be followed. If the file to be copied is a symbolic link, the link is copied (and not the target of the link).
If you are not familiar with enums , see Enum Types.
The following shows how to use the copy method:
import static java.nio.file.StandardCopyOption.*; . Files.copy(source, target, REPLACE_EXISTING);
In addition to file copy, the Files class also defines methods that may be used to copy between a file and a stream. The copy(InputStream, Path, CopyOptions. ) method may be used to copy all bytes from an input stream to a file. The copy(Path, OutputStream) method may be used to copy all bytes from a file to an output stream.
The Copy example uses the copy and Files.walkFileTree methods to support a recursive copy. See Walking the File Tree for more information.