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.
El 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;
public class FileCopyDemo {
public static void main(String args[]) {
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;
public class Testing {
public static void main(String args[]) {
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.*;
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) {
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 .
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");
String s2 = "Hello World using literals";
System.out.println(s1);
System.out.println(s2);
}
}
GO TO FULL VERSION