Paano kopyahin ang mga file mula sa isang direktoryo patungo sa isa pa sa Java
Source:
DZone Matagal na akong nagprograma sa Java, at hindi ka maniniwala, ngunit bago ang Java 7, walang paraan para sa pagkopya ng mga file sa Java API. Ang aming mga pagpipilian lamang ay isulat ito sa aming sarili, gamit ang FileInputStream, FileOutputStream at isang buffer upang kopyahin ang mga byte mula sa isa't isa; o mas mabuti pa, gamitin ang paraan
ng FileChannel.transferTo() o Apache Commons FileUtils, na isang lifesaver noong mga panahong iyon at umiiral pa rin hanggang ngayon.
Ang JDK ay umunlad na ngayon at mayroon nang isang disenteng API para sa pagkopya ng mga file mula sa isang direktoryo patungo sa isa pa. Sa artikulong ito, ipapakita ko sa iyo kung paano namin kinopya ang mga file mula sa isang direktoryo patungo sa isa pa bago ang Java 7, pati na rin ang isang modernong paraan na ginagawang mas madali ang gawaing ito.
1. Pagkopya ng mga file mula sa isang direktoryo patungo sa isa pa bago ang Java 7
Dependency: Apache Commons IO
1.1 FileUtils.copyFile(file source, file destination) Kinokopya ng paraang ito ang file sa isang bagong lokasyon habang pinapanatili ang timestamp ng file. Kinokopya din nito ang mga nilalaman ng tinukoy na source file sa tinukoy na destination file. Ang direktoryo na naglalaman ng target na file ay nilikha
kung wala ito . Kung umiiral ang target na file, i-overwrite ito ng paraang ito.
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 Kopyahin ang isang file sa isang direktoryo habang pinapanatili ang isang timestamp Ang pamamaraang ito ay kinokopya ang mga nilalaman ng tinukoy na source file sa isang file na may parehong pangalan sa tinukoy na target na direktoryo. Ang target na direktoryo ay nilikha kung
wala ito . Kung umiiral ang target na file, i-overwrite ito ng paraang ito.
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. Kopyahin ang mga file mula sa isang direktoryo patungo sa isa pa gamit ang Java 7 NIO 2 API.
Ang Java
7 ay may karaniwang paraan para sa pagkopya ng mga file:
Files.copy . Sumasama ito sa katutubong I/O O/S upang magbigay ng mataas na pagganap.
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();
}
}
}
Maaari ka ring kumopya ng mga file sa Java sa pamamagitan ng pagsulat ng code gamit ang
FileInputStream at
FileOuputStream , ngunit hindi ito kinakailangan kung mayroon kang naka-install na Java 7. Ang klase ng Apache Commons IO FileUtils ay isa ring madaling gamiting alternatibo. Para sa mabilis na pagkopya at paglilipat ng file, maaari mo ring samantalahin ang mga klase ng java.nio at
FileChannel , ngunit tandaan na mayroong bug sa Windows na pumipigil sa iyong maglipat ng higit sa 64GB ng data ng channel.
Mga string sa Java
Pinagmulan:
Dev.to Tulad ng ibang mga programming language,
ang String sa Java ay isang sequence ng mga character. Ngunit ang Java ay hindi nagpapatupad ng isang string bilang isang array ng mga character, ngunit itinuturing ito bilang isang kumpletong
String object .
Paano gumawa ng string object gamit ang bagong keyword at literal
Mayroong dalawang paraan upang lumikha ng string object: gamit ang bagong keyword o paggamit ng mga literal. Ang literal na representasyon ay nangangahulugang kumakatawan sa halaga nito bilang isang integer o string. Ipinapakita ng code sa ibaba kung paano tayo makakagawa ng string gamit ang bagong keyword.
String a = new String();
Tulad ng alam natin, ang bagong keyword ay ginagamit upang lumikha ng isang halimbawa ng klase na ito. Sa itaas ay gumawa kami ng instance ng "a" type na string na walang mga character. Upang lumikha ng isang string na may isang halaga sa loob nito, magagawa mo ito tulad nito.
char name[] = {'x','y','z'}
String a = new String(chars);
Sa itaas ay lumikha kami ng isang character array
name[ ] na may mga value na "x", "y", "z", at pagkatapos ay itinalaga ang kumpletong array na ito sa string na "a". Ginamit namin ang constructor ng
String class para masimulan ang value ng string. Gaya ng nakita natin sa itaas, ang paggawa ng string gamit ang bagong keyword ay medyo nakakalito at nakakaubos ng oras. Ngunit mayroong isang talagang simpleng paraan, at ito ay kung saan ang mga literal ay dumating upang iligtas tayo.
String s = "xyz";
Ito ay kung paano kami lumikha ng isang string sa Java gamit ang mga literal. Para sa bawat literal na string sa isang programa, awtomatikong lumilikha ang Java ng String object na may paunang halaga na ibinigay dito. Maaari kang gumamit ng literal na string kahit saan sa isang programa upang lumikha ng string object mula dito.
Halimbawang string
Narito ang code para sa isang simpleng Hello world program na may ilang linya.
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