JavaRush /Blog Java /Random-MS /Rehat kopi #99. Bagaimana untuk menyalin fail dari satu d...

Rehat kopi #99. Bagaimana untuk menyalin fail dari satu direktori ke direktori lain dalam Java. Rentetan dalam Jawa

Diterbitkan dalam kumpulan

Bagaimana untuk menyalin fail dari satu direktori ke direktori lain dalam Java

Sumber: DZone Saya telah memprogramkan di Java untuk masa yang lama, dan anda tidak akan mempercayainya, tetapi sebelum Java 7, tiada kaedah untuk menyalin fail dalam API Java. Satu-satunya pilihan kami ialah menulisnya sendiri, menggunakan FileInputStream, FileOutputStream dan penimbal untuk menyalin bait daripada satu kepada yang lain; atau lebih baik lagi, gunakan kaedah FileChannel.transferTo() atau Apache Commons FileUtils, yang merupakan penyelamat pada zaman itu dan masih wujud sehingga kini. Rehat kopi #99.  Bagaimana untuk menyalin fail dari satu direktori ke direktori lain dalam Java.  Rentetan dalam Java - 1JDK kini telah berkembang dan sudah ada API yang baik untuk menyalin fail dari satu direktori ke direktori lain. Dalam artikel ini, saya akan menunjukkan kepada anda cara kami menyalin fail dari satu direktori ke direktori lain sebelum Java 7, serta cara moden yang menjadikan tugas ini lebih mudah.

1. Menyalin fail dari satu direktori ke direktori lain sebelum Java 7

Kebergantungan: Apache Commons IO

1.1 FileUtils.copyFile(sumber fail, destinasi fail) Kaedah ini menyalin fail ke lokasi baharu sambil mengekalkan cap masa fail. Ia juga menyalin kandungan fail sumber yang ditentukan ke fail destinasi yang ditentukan. Direktori yang mengandungi fail sasaran dibuat jika ia tidak wujud . Jika fail sasaran wujud, kaedah ini akan menimpanya.
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 Salin fail ke direktori sambil mengekalkan cap masa Kaedah ini menyalin kandungan fail sumber yang ditentukan ke fail dengan nama yang sama dalam direktori sasaran yang ditentukan. Direktori sasaran dibuat jika ia tidak wujud . Jika fail sasaran wujud, kaedah ini akan menimpanya.
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. Salin fail dari satu direktori ke direktori lain menggunakan Java 7 NIO 2 API.

Java 7 mempunyai kaedah standard untuk menyalin fail: Files.copy . Ia berintegrasi dengan I/O O/S asli untuk memberikan prestasi tinggi.
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();

}



}



}
Anda juga boleh menyalin fail dalam Java dengan menulis kod menggunakan FileInputStream dan FileOuputStream , tetapi ini tidak perlu jika anda telah memasang Java 7. Kelas Apache Commons IO FileUtils juga merupakan alternatif yang berguna. Untuk penyalinan dan pemindahan fail berkelajuan tinggi, anda juga boleh memanfaatkan kelas java.nio dan FileChannel , tetapi maklum bahawa terdapat pepijat dalam Windows yang menghalang anda daripada memindahkan lebih daripada 64GB data saluran.

Rentetan dalam Jawa

Sumber: Dev.to Seperti bahasa pengaturcaraan lain, String dalam Java ialah jujukan aksara. Tetapi Java tidak melaksanakan rentetan sebagai tatasusunan aksara, tetapi menganggapnya sebagai objek String yang lengkap . Rehat kopi #99.  Bagaimana untuk menyalin fail dari satu direktori ke direktori lain dalam Java.  Rentetan dalam Java - 2

Cara membuat objek rentetan menggunakan kata kunci dan literal baharu

Terdapat dua cara untuk mencipta objek rentetan: menggunakan kata kunci baharu atau menggunakan literal. Perwakilan literal bermaksud mewakili nilainya sebagai integer atau rentetan. Kod di bawah menunjukkan cara kita boleh membuat rentetan menggunakan kata kunci baharu.
String a = new String();
Seperti yang kita ketahui, kata kunci baharu digunakan untuk membuat contoh kelas ini. Di atas kami mencipta contoh rentetan jenis "a" tanpa aksara. Untuk mencipta rentetan dengan nilai di dalamnya, anda boleh melakukannya seperti ini.
char name[] = {'x','y','z'}
String a = new String(chars);
Di atas kami mencipta nama tatasusunan aksara[ ] dengan nilai "x", "y", "z", dan kemudian memberikan tatasusunan lengkap ini kepada rentetan "a". Kami menggunakan pembina kelas String untuk memulakan nilai rentetan. Seperti yang kita lihat di atas, membuat rentetan menggunakan kata kunci baharu agak mengelirukan dan memakan masa. Tetapi ada cara yang sangat mudah, dan di sinilah orang literal datang untuk menyelamatkan kita.
String s = "xyz";
Inilah cara kami mencipta rentetan dalam Java menggunakan literal. Untuk setiap literal rentetan dalam program, Java secara automatik mencipta objek String dengan nilai awal yang diberikan kepadanya. Anda boleh menggunakan rentetan literal di mana-mana sahaja dalam program untuk mencipta objek rentetan daripadanya.

Contoh rentetan

Berikut ialah kod untuk program Hello world yang ringkas dengan beberapa baris.
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);
}
}
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION