JavaRush /Java Blog /Random-IT /Pausa caffè #99. Come copiare file da una directory all'a...

Pausa caffè #99. Come copiare file da una directory all'altra in Java. Stringhe in Java

Pubblicato nel gruppo Random-IT

Come copiare file da una directory all'altra in Java

Fonte: DZone Programmavo in Java da molto tempo e non ci crederai, ma prima di Java 7 non esisteva un metodo per copiare i file nell'API Java. Le nostre uniche opzioni erano scriverlo noi stessi, utilizzando FileInputStream, FileOutputStream e un buffer per copiare byte dall'uno all'altro; o meglio ancora, utilizzare il metodo FileChannel.transferTo() o Apache Commons FileUtils, che a quei tempi erano un vero toccasana ed esistono ancora oggi. Pausa caffè #99.  Come copiare file da una directory all'altra in Java.  Stringhe in Java - 1Il JDK ora si è evoluto ed esiste già un'API decente per copiare file da una directory all'altra. In questo articolo ti mostrerò come copiavamo i file da una directory all'altra prima di Java 7, nonché un modo moderno che rende questo compito molto più semplice.

1. Copia di file da una directory a un'altra prima di Java 7

Dipendenza: Apache Commons IO

1.1 FileUtils.copyFile(origine file, destinazione file) Questo metodo copia il file in una nuova posizione mantenendo il timestamp del file. Copia inoltre il contenuto del file di origine specificato nel file di destinazione specificato. Se non esiste, viene creata la directory contenente il file di destinazione . Se il file di destinazione esiste, questo metodo lo sovrascriverà.
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 Copiare un file in una directory mantenendo un timestamp Questo metodo copia il contenuto del file di origine specificato in un file con lo stesso nome nella directory di destinazione specificata. La directory di destinazione viene creata se non esiste . Se il file di destinazione esiste, questo metodo lo sovrascriverà.
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. Copiare i file da una directory all'altra utilizzando l'API Java 7 NIO 2.

Java 7 dispone di un metodo standard per copiare i file: Files.copy . Si integra con il sistema operativo I/O nativo per fornire prestazioni elevate.
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();

}



}



}
Puoi anche copiare file in Java scrivendo codice utilizzando FileInputStream e FileOuputStream , ma ciò non è necessario se hai installato Java 7. Anche la classe Apache Commons IO FileUtils è un'alternativa pratica. Per la copia e il trasferimento di file ad alta velocità, puoi anche sfruttare le classi java.nio e FileChannel , ma tieni presente che esiste un bug in Windows che ti impedisce di trasferire più di 64 GB di dati del canale.

Stringhe in Java

Fonte: Dev.to Come altri linguaggi di programmazione, una stringa in Java è una sequenza di caratteri. Ma Java non implementa una stringa come un array di caratteri, ma la tratta come un oggetto String completo . Pausa caffè #99.  Come copiare file da una directory all'altra in Java.  Stringhe in Java - 2

Come creare un oggetto stringa utilizzando la nuova parola chiave e i valori letterali

Esistono due modi per creare un oggetto stringa: utilizzando la parola chiave new o utilizzando valori letterali. Rappresentazione letterale significa rappresentare il suo valore come numero intero o stringa. Il codice seguente mostra come possiamo creare una stringa utilizzando la nuova parola chiave.
String a = new String();
Come sappiamo, la parola chiave new viene utilizzata per creare un'istanza di questa classe. Sopra abbiamo creato un'istanza di stringa di tipo "a" senza caratteri. Per creare una stringa con un valore al suo interno, puoi farlo in questo modo.
char name[] = {'x','y','z'}
String a = new String(chars);
Sopra abbiamo creato un array di caratteri name[ ] con i valori “x”, “y”, “z”, e poi abbiamo assegnato questo array completo alla stringa “a”. Abbiamo utilizzato il costruttore della classe String per inizializzare il valore della stringa. Come abbiamo visto sopra, creare una stringa utilizzando la parola chiave new è un po' confuso e richiede molto tempo. Ma esiste un modo davvero semplice, ed è qui che i valori letterali vengono in nostro soccorso.
String s = "xyz";
Ecco come creiamo una stringa in Java utilizzando i valori letterali. Per ogni stringa letterale in un programma, Java crea automaticamente un oggetto String a cui viene fornito un valore iniziale. È possibile utilizzare una stringa letterale ovunque in un programma per creare un oggetto stringa da esso.

Stringa di esempio

Ecco il codice per un semplice programma Hello World con poche righe.
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);
}
}
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION