JavaRush /Java Blog /Random-TL /Coffee break #99. Paano kopyahin ang mga file mula sa isa...

Coffee break #99. Paano kopyahin ang mga file mula sa isang direktoryo patungo sa isa pa sa Java. Mga string sa Java

Nai-publish sa grupo

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. Coffee break #99.  Paano kopyahin ang mga file mula sa isang direktoryo patungo sa isa pa sa Java.  Mga String sa Java - 1Ang 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;



/**

* 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 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;



/**

* 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. 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.*;



/**

* 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();

}



}



}
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 . Coffee break #99.  Paano kopyahin ang mga file mula sa isang direktoryo patungo sa isa pa sa Java.  Mga String sa Java - 2

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"); // Using new keyword
        String s2 = "Hello World using literals";

        System.out.println(s1);
        System.out.println(s2);
}
}
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION