JavaRush /Blog Java /Random-VI /Nghỉ giải lao #99. Cách sao chép tệp từ thư mục này sang ...

Nghỉ giải lao #99. Cách sao chép tệp từ thư mục này sang thư mục khác trong Java. Chuỗi trong Java

Xuất bản trong nhóm

Cách sao chép tệp từ thư mục này sang thư mục khác trong Java

Nguồn: DZone Tôi đã lập trình Java từ lâu và bạn sẽ không tin điều đó, nhưng trước Java 7, không có phương pháp sao chép tệp trong API Java. Lựa chọn duy nhất của chúng tôi là tự viết nó, sử dụng FileInputStream, FileOutputStream và bộ đệm để sao chép byte từ byte này sang byte khác; hoặc tốt hơn nữa, hãy sử dụng phương thức FileChannel.transferTo() hoặc Apache Commons FileUtils, vốn là phương pháp cứu cánh vào thời đó và vẫn tồn tại cho đến ngày nay. Nghỉ giải lao #99.  Cách sao chép tệp từ thư mục này sang thư mục khác trong Java.  Chuỗi trong Java - 1JDK hiện đã phát triển và đã có một API phù hợp để sao chép tệp từ thư mục này sang thư mục khác. Trong bài viết này, tôi sẽ chỉ cho bạn cách chúng tôi sao chép các tệp từ thư mục này sang thư mục khác trước Java 7, cũng như một cách hiện đại giúp thực hiện tác vụ này dễ dàng hơn nhiều.

1. Sao chép file từ thư mục này sang thư mục khác trước Java 7

Phụ thuộc: Apache Commons IO

1.1 FileUtils.copyFile(nguồn tệp, đích tệp) Phương thức này sao chép tệp sang vị trí mới trong khi vẫn duy trì dấu thời gian của tệp. Nó cũng sao chép nội dung của tệp nguồn được chỉ định vào tệp đích được chỉ định. Thư mục chứa file đích sẽ được tạo nếu nó không tồn tại . Nếu tệp đích tồn tại thì phương thức này sẽ ghi đè lên nó.
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 Sao chép một tập tin vào một thư mục trong khi vẫn duy trì dấu thời gian Phương pháp này sao chép nội dung của tập tin nguồn được chỉ định vào một tập tin có cùng tên trong thư mục đích đã chỉ định. Thư mục đích được tạo nếu nó không tồn tại . Nếu tệp đích tồn tại, phương pháp này sẽ ghi đè lên nó.
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. Sao chép tệp từ thư mục này sang thư mục khác bằng API Java 7 NIO 2.

Java 7 có một phương thức tiêu chuẩn để sao chép tệp: Files.copy . Nó tích hợp với I/O O/S gốc để mang lại hiệu suất cao.
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();

}



}



}
Bạn cũng có thể sao chép các tệp trong Java bằng cách viết mã bằng FileInputStreamFileOuputStream , nhưng điều này là không cần thiết nếu bạn đã cài đặt Java 7. Lớp Apache Commons IO FileUtils cũng là một lựa chọn thay thế tiện dụng. Để sao chép và truyền tệp tốc độ cao, bạn cũng có thể tận dụng các lớp java.nio và FileChannel , nhưng hãy lưu ý rằng có một lỗi trong Windows khiến bạn không thể truyền hơn 64GB dữ liệu kênh.

Chuỗi trong Java

Nguồn: Dev.to Giống như các ngôn ngữ lập trình khác, Chuỗi trong Java là một chuỗi ký tự. Nhưng Java không triển khai chuỗi dưới dạng một mảng ký tự mà coi nó như một đối tượng Chuỗi hoàn chỉnh . Nghỉ giải lao #99.  Cách sao chép tệp từ thư mục này sang thư mục khác trong Java.  Chuỗi trong Java - 2

Cách tạo đối tượng chuỗi bằng từ khóa mới và chữ

Có hai cách để tạo một đối tượng chuỗi: sử dụng từ khóa mới hoặc sử dụng hằng. Biểu diễn theo nghĩa đen có nghĩa là biểu diễn giá trị của nó dưới dạng số nguyên hoặc chuỗi. Đoạn mã dưới đây cho thấy cách chúng ta có thể tạo một chuỗi bằng từ khóa mới.
String a = new String();
Như chúng ta đã biết, từ khóa new được sử dụng để tạo một thể hiện của lớp này. Ở trên chúng ta đã tạo một thể hiện của chuỗi kiểu “a” không có ký tự. Để tạo một chuỗi có giá trị trong đó, bạn có thể làm như thế này.
char name[] = {'x','y','z'}
String a = new String(chars);
Ở trên chúng ta đã tạo một mảng ký tự name[ ] với các giá trị “x”, “y”, “z”, sau đó gán mảng hoàn chỉnh này cho chuỗi “a”. Chúng ta đã sử dụng hàm tạo của lớp String để khởi tạo giá trị của chuỗi. Như chúng ta đã thấy ở trên, việc tạo một chuỗi bằng từ khóa new hơi khó hiểu và tốn thời gian. Nhưng có một cách thực sự đơn giản và đây chính là lúc những người hiểu nghĩa đen đến giải cứu chúng ta.
String s = "xyz";
Đây là cách chúng ta tạo một chuỗi trong Java bằng cách sử dụng hằng. Đối với mỗi chuỗi ký tự trong một chương trình, Java sẽ tự động tạo một đối tượng String với giá trị ban đầu được cung cấp cho nó. Bạn có thể sử dụng một chuỗi ký tự ở bất kỳ đâu trong chương trình để tạo một đối tượng chuỗi từ nó.

Chuỗi ví dụ

Đây là mã của một chương trình Hello world đơn giản với một vài dòng.
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);
}
}
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION