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.
JDK 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;
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 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;
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. 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.*;
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();
}
}
}
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 .
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");
String s2 = "Hello World using literals";
System.out.println(s1);
System.out.println(s2);
}
}
GO TO FULL VERSION