JavaRush /Blog Java /Random-ES /Pausa para el café #99. Cómo copiar archivos de un direct...

Pausa para el café #99. Cómo copiar archivos de un directorio a otro en Java. Cadenas en Java

Publicado en el grupo Random-ES

Cómo copiar archivos de un directorio a otro en Java

Fuente: DZone He estado programando en Java durante mucho tiempo y no lo creerás, pero antes de Java 7, no existía ningún método para copiar archivos en la API de Java. Nuestras únicas opciones eran escribirlo nosotros mismos, usando FileInputStream, FileOutputStream y un buffer para copiar bytes de uno a otro; o mejor aún, utilice el método FileChannel.transferTo() o Apache Commons FileUtils, que fueron un salvavidas en aquellos días y todavía existen hoy. Pausa para el café #99.  Cómo copiar archivos de un directorio a otro en Java.  Cadenas en Java - 1El JDK ha evolucionado y ya existe una API decente para copiar archivos de un directorio a otro. En este artículo, le mostraré cómo copiamos archivos de un directorio a otro antes de Java 7, así como una forma moderna que facilita mucho esta tarea.

1. Copiar archivos de un directorio a otro antes de Java 7

Dependencia: Apache Commons IO

1.1 FileUtils.copyFile (origen del archivo, destino del archivo) Este método copia el archivo en una nueva ubicación manteniendo la marca de tiempo del archivo. También copia el contenido del archivo de origen especificado al archivo de destino especificado. El directorio que contiene el archivo de destino se crea si no existe . Si el archivo de destino existe, este método lo sobrescribirá.
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 un archivo a un directorio manteniendo una marca de tiempo Este método copia el contenido del archivo fuente especificado a un archivo con el mismo nombre en el directorio de destino especificado. El directorio de destino se crea si no existe . Si el archivo de destino existe, este método lo sobrescribirá.
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 archivos de un directorio a otro usando la API Java 7 NIO 2.

Java 7 tiene un método estándar para copiar archivos: Files.copy . Se integra con E/S nativas para proporcionar un alto rendimiento.
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();

}



}



}
También puede copiar archivos en Java escribiendo código usando FileInputStream y FileOuputStream , pero esto no es necesario si tiene instalado Java 7. La clase Apache Commons IO FileUtils también es una alternativa útil. Para copiar y transferir archivos a alta velocidad, también puede aprovechar las clases java.nio y FileChannel , pero tenga en cuenta que hay un error en Windows que le impide transferir más de 64 GB de datos del canal.

Cadenas en Java

Fuente: Dev.to Al igual que otros lenguajes de programación, una cadena en Java es una secuencia de caracteres. Pero Java no implementa una cadena como una matriz de caracteres, sino que la trata como un objeto String completo . Pausa para el café #99.  Cómo copiar archivos de un directorio a otro en Java.  Cadenas en Java - 2

Cómo crear un objeto de cadena usando la nueva palabra clave y literales

Hay dos formas de crear un objeto de cadena: usando la nueva palabra clave o usando literales. La representación literal significa representar su valor como un número entero o una cadena. El siguiente código muestra cómo podemos crear una cadena usando la nueva palabra clave.
String a = new String();
Como sabemos, la nueva palabra clave se utiliza para crear una instancia de esta clase. Arriba creamos una instancia de cadena tipo "a" sin caracteres. Para crear una cadena con un valor, puede hacerlo así.
char name[] = {'x','y','z'}
String a = new String(chars);
Arriba creamos un nombre de matriz de caracteres [] con los valores "x", "y", "z" y luego asignamos esta matriz completa a la cadena "a". Usamos el constructor de la clase String para inicializar el valor de la cadena. Como vimos anteriormente, crear una cadena usando la nueva palabra clave es un poco confuso y requiere mucho tiempo. Pero hay una forma realmente sencilla, y aquí es donde los literales vienen a nuestro rescate.
String s = "xyz";
Así es como creamos una cadena en Java usando literales. Para cada cadena literal en un programa, Java crea automáticamente un objeto String con un valor inicial proporcionado. Puede utilizar un literal de cadena en cualquier parte de un programa para crear un objeto de cadena a partir de él.

Cadena de ejemplo

Aquí está el código para un programa sencillo de Hola Mundo con unas pocas líneas.
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);
}
}
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION