JavaRush /Blogue Java /Random-PT /Pausa para café #99. Como copiar arquivos de um diretório...

Pausa para café #99. Como copiar arquivos de um diretório para outro em Java. Cordas em Java

Publicado no grupo Random-PT

Como copiar arquivos de um diretório para outro em Java

Fonte: DZone Eu programo em Java há muito tempo e você não vai acreditar, mas antes do Java 7 não havia método para copiar arquivos na API Java. Nossas únicas opções eram escrevê-lo nós mesmos, usando FileInputStream, FileOutputStream e um buffer para copiar bytes de um para outro; ou melhor ainda, use o método FileChannel.transferTo() ou Apache Commons FileUtils, que salvou vidas naquela época e ainda existe hoje. Pausa para café #99.  Como copiar arquivos de um diretório para outro em Java.  Cordas em Java - 1O JDK evoluiu e já existe uma API decente para copiar arquivos de um diretório para outro. Neste artigo, vou mostrar como copiamos arquivos de um diretório para outro antes do Java 7, bem como uma forma moderna que facilita muito essa tarefa.

1. Copiando arquivos de um diretório para outro antes do Java 7

Dependência: Apache Commons IO

1.1 FileUtils.copyFile(origem do arquivo, destino do arquivo) Este método copia o arquivo para um novo local enquanto mantém o carimbo de data/hora do arquivo. Ele também copia o conteúdo do arquivo de origem especificado para o arquivo de destino especificado. O diretório que contém o arquivo de destino é criado se não existir . Se o arquivo de destino existir, este método irá substituí-lo.
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 Copiar um arquivo para um diretório mantendo um carimbo de data/hora Este método copia o conteúdo do arquivo de origem especificado para um arquivo com o mesmo nome no diretório de destino especificado. O diretório de destino é criado se não existir . Se o arquivo de destino existir, este método irá substituí-lo.
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. Copie arquivos de um diretório para outro usando a API Java 7 NIO 2.

Java 7 possui um método padrão para copiar arquivos: Files.copy . Ele se integra com E/S O/S nativo para fornecer alto desempenho.
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();

}



}



}
Você também pode copiar arquivos em Java escrevendo código usando FileInputStream e FileOuputStream , mas isso não é necessário se você tiver instalado o Java 7. A classe Apache Commons IO FileUtils também é uma alternativa útil. Para copiar e transferir arquivos em alta velocidade, você também pode aproveitar as vantagens das classes java.nio e FileChannel , mas esteja ciente de que há um bug no Windows que impede a transferência de mais de 64 GB de dados do canal.

Cordas em Java

Fonte: Dev.to Como outras linguagens de programação, uma String em Java é uma sequência de caracteres. Mas Java não implementa uma string como um array de caracteres, mas a trata como um objeto String completo . Pausa para café #99.  Como copiar arquivos de um diretório para outro em Java.  Cordas em Java - 2

Como criar um objeto string usando a nova palavra-chave e literais

Existem duas maneiras de criar um objeto string: usando a palavra-chave new ou usando literais. Representação literal significa representar seu valor como um número inteiro ou string. O código abaixo mostra como podemos criar uma string usando a palavra-chave new.
String a = new String();
Como sabemos, a palavra-chave new é usada para criar uma instância desta classe. Acima criamos uma instância de string do tipo “a” sem caracteres. Para criar uma string com um valor, você pode fazer assim.
char name[] = {'x','y','z'}
String a = new String(chars);
Acima criamos um array de caracteres nome[ ] com os valores “x”, “y”, “z”, e então atribuímos esse array completo à string “a”. Usamos o construtor da classe String para inicializar o valor da string. Como vimos acima, criar uma string usando a palavra-chave new é um pouco confuso e demorado. Mas existe uma maneira realmente simples, e é aqui que os literais vêm em nosso socorro.
String s = "xyz";
É assim que criamos uma string em Java usando literais. Para cada string literal em um programa, Java cria automaticamente um objeto String com um valor inicial fornecido a ele. Você pode usar uma string literal em qualquer lugar de um programa para criar um objeto string a partir dela.

Cadeia de exemplo

Aqui está o código para um programa simples Hello World com algumas linhas.
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);
}
}
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION