JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #99. วิธีคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไ...

คอฟฟี่เบรค #99. วิธีคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีใน Java สตริงใน Java

เผยแพร่ในกลุ่ม

วิธีคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีใน Java

ที่มา: DZone ฉันเขียนโปรแกรมใน Java มาเป็นเวลานานแล้วคุณจะไม่เชื่อเลย แต่ก่อน Java 7 ไม่มีวิธีการคัดลอกไฟล์ใน Java API ทางเลือกเดียวของเราคือเขียนมันเองโดยใช้ FileInputStream, FileOutputStream และบัฟเฟอร์เพื่อคัดลอกไบต์จากที่หนึ่งไปยังอีกที่หนึ่ง หรือดีกว่านั้นให้ใช้ เมธอด FileChannel.transferTo()หรือ Apache Commons FileUtils ซึ่งเป็นเครื่องช่วยชีวิตในสมัยนั้นและยังคงมีอยู่ในปัจจุบัน คอฟฟี่เบรค #99.  วิธีคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีใน Java  สตริงใน Java - 1ขณะนี้ JDK ได้รับการพัฒนาและมี API ที่เหมาะสมสำหรับการคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีหนึ่งแล้ว ในบทความนี้ ฉันจะแสดงให้คุณเห็นว่าเราคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีก่อน Java 7 ได้อย่างไร รวมถึงวิธีการสมัยใหม่ที่ทำให้งานนี้ง่ายขึ้นมาก

1. การคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีก่อน Java 7

การพึ่งพา: Apache Commons IO

1.1 FileUtils.copyFile(แหล่งไฟล์, ปลายทางของไฟล์) วิธีการนี้จะคัดลอกไฟล์ไปยังตำแหน่งใหม่โดยยังคงรักษาการประทับเวลาของไฟล์ไว้ นอกจากนี้ยังคัดลอกเนื้อหาของไฟล์ต้นทางที่ระบุไปยังไฟล์ปลายทางที่ระบุด้วย ไดเร็กทอรีที่มีไฟล์เป้าหมายจะถูกสร้างขึ้นหากไม่มีอยู่ หากมีไฟล์เป้าหมายอยู่ วิธีการนี้จะเขียนทับไฟล์นั้น
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 คัดลอกไฟล์ไปยังไดเร็กทอรีโดยยังคงรักษาการประทับเวลาไว้วิธีการนี้จะคัดลอกเนื้อหาของไฟล์ต้นฉบับที่ระบุไปยังไฟล์ที่มีชื่อเดียวกันในไดเร็กทอรีเป้าหมายที่ระบุ ไดเรกทอรีเป้าหมายจะถูกสร้างขึ้นหากไม่มีอยู่ หากมีไฟล์เป้าหมายอยู่ วิธีการนี้จะเขียนทับไฟล์นั้น
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. คัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีโดยใช้ Java 7 NIO 2 API

Java 7มีวิธีมาตรฐานในการคัดลอกไฟล์: Files.copy โดยผสานรวมกับ I/O O/S ดั้งเดิมเพื่อให้ประสิทธิภาพสูง
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();

}



}



}
คุณยังสามารถคัดลอกไฟล์ใน Java ได้ด้วยการเขียนโค้ดโดยใช้FileInputStreamและFileOuputStreamแต่ไม่จำเป็นหากคุณติดตั้ง Java 7 ไว้ คลาส Apache Commons IO FileUtils ก็เป็นทางเลือกที่สะดวกเช่นกัน สำหรับการคัดลอกและถ่ายโอนไฟล์ความเร็วสูง คุณยังสามารถใช้ประโยชน์จากคลาส java.nio และFileChannelได้ แต่โปรดทราบว่ามีข้อบกพร่องใน Windows ที่ทำให้คุณไม่สามารถถ่ายโอนข้อมูลช่องสัญญาณมากกว่า 64GB

สตริงใน Java

ที่มา: Dev.to เช่นเดียวกับภาษาการเขียนโปรแกรมอื่นStringใน Java นั้นเป็นลำดับของอักขระ แต่ Java ไม่ได้ใช้สตริงเป็นอาร์เรย์ของอักขระ แต่ถือว่ามันเป็นวัตถุ String ที่สมบูรณ์คอฟฟี่เบรค #99.  วิธีคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีใน Java  สตริงใน Java - 2

วิธีสร้างวัตถุสตริงโดยใช้คำสำคัญและตัวอักษรใหม่

มีสองวิธีในการสร้างออบเจ็กต์สตริง: การใช้คีย์เวิร์ดใหม่หรือการใช้ตัวอักษร การแสดงตัวอักษรหมายถึงการแสดงค่าเป็นจำนวนเต็มหรือสตริง โค้ดด้านล่างแสดงวิธีที่เราสามารถสร้างสตริงโดยใช้คีย์เวิร์ดใหม่
String a = new String();
อย่างที่เราทราบ คีย์เวิร์ดใหม่ถูกใช้เพื่อสร้างอินสแตนซ์ของคลาสนี้ ด้านบนนี้เราได้สร้างอินสแตนซ์ของสตริงประเภท "a" ที่ไม่มีอักขระ หากต้องการสร้างสตริงที่มีค่าอยู่ คุณสามารถทำได้ดังนี้
char name[] = {'x','y','z'}
String a = new String(chars);
ด้านบนนี้เราได้สร้างชื่ออาร์เรย์อักขระ[ ]ด้วยค่า "x", "y", "z" จากนั้นจึงกำหนดอาร์เรย์ที่สมบูรณ์นี้ให้กับสตริง "a" เราใช้ตัวสร้างของ คลาส Stringเพื่อเริ่มต้นค่าของสตริง ดังที่เราเห็นข้างต้น การสร้างสตริงโดยใช้คีย์เวิร์ดใหม่นั้นค่อนข้างน่าสับสนและใช้เวลานาน แต่มีวิธีที่ง่ายมาก และนี่คือจุดที่คนจริงๆ มาช่วยเหลือเรา
String s = "xyz";
นี่คือวิธีที่เราสร้างสตริงใน Java โดยใช้ตัวอักษร สำหรับทุกสตริงลิเทอรัลในโปรแกรม Java จะสร้างอ็อบเจ็กต์ String โดยอัตโนมัติพร้อมค่าเริ่มต้นที่มอบให้ คุณสามารถใช้สตริงลิเทอรัลได้ทุกที่ในโปรแกรมเพื่อสร้างออบเจ็กต์สตริงจากโปรแกรม

ตัวอย่างสตริง

นี่คือโค้ดสำหรับโปรแกรม Hello world ง่ายๆ ที่มีความยาวไม่กี่บรรทัด
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);
}
}
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION