JavaRush /Java Blog /Random-KO /커피 브레이크 #99. Java에서 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 방법. 자바의 문자...

커피 브레이크 #99. Java에서 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 방법. 자바의 문자열

Random-KO 그룹에 게시되었습니다

Java에서 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 방법

출처 : DZone 오랫동안 Java로 프로그래밍을 해왔는데 믿기지 않으시겠지만 Java 7 이전에는 Java API에 파일을 복사하는 방법이 없었습니다. 우리의 유일한 옵션은 FileInputStream, FileOutputStream 및 버퍼를 사용하여 바이트를 서로 복사하여 직접 작성하는 것이었습니다. 또는 그 당시에는 생명의 은인이었고 오늘날에도 여전히 존재하는 FileChannel.transferTo() 메서드나 Apache Commons FileUtils를 사용하는 것이 더 좋습니다 . 커피 브레이크 #99.  Java에서 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 방법.  Java의 문자열 - 1JDK는 이제 발전했으며 한 디렉터리에서 다른 디렉터리로 파일을 복사하기 위한 적절한 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();

}



}



}
FileInputStreamFileOuputStream 을 사용하여 코드를 작성하여 Java로 파일을 복사할 수도 있지만 Java 7이 설치된 경우에는 필요하지 않습니다.Apache Commons IO FileUtils 클래스도 편리한 대안입니다. 고속 파일 복사 및 전송을 위해 java.nio 및 FileChannel 클래스 를 활용할 수도 있지만 Windows에는 64GB 이상의 채널 데이터를 전송하지 못하게 하는 버그가 있다는 점에 유의하세요.

자바의 문자열

출처: Dev.to 다른 프로그래밍 언어와 마찬가지로 Java의 문자열은 일련의 문자입니다. 그러나 Java는 문자열을 문자 배열로 구현하지 않고 완전한 String 객체로 처리합니다 . 커피 브레이크 #99.  Java에서 한 디렉토리에서 다른 디렉토리로 파일을 복사하는 방법.  Java의 문자열 - 2

new 키워드와 리터럴을 사용하여 문자열 개체를 만드는 방법

문자열 객체를 생성하는 방법에는 new 키워드를 사용하거나 리터럴을 사용하는 두 가지 방법이 있습니다. 리터럴 표현은 해당 값을 정수 또는 문자열로 표현하는 것을 의미합니다. 아래 코드는 new 키워드를 사용하여 문자열을 생성하는 방법을 보여줍니다.
String a = new String();
우리가 알고 있듯이 new 키워드는 이 클래스의 인스턴스를 생성하는 데 사용됩니다. 위에서는 문자가 없는 "a" 유형 문자열의 인스턴스를 만들었습니다. 값이 포함된 문자열을 만들려면 다음과 같이 하면 됩니다.
char name[] = {'x','y','z'}
String a = new String(chars);
위에서는 "x", "y", "z" 값을 사용하여 문자 배열 이름[ ]을 만든 다음 이 전체 배열을 문자열 "a"에 할당했습니다. String 클래스 의 생성자를 사용하여 문자열 값을 초기화했습니다. 위에서 본 것처럼 new 키워드를 사용하여 문자열을 생성하는 것은 약간 혼란스럽고 시간이 많이 걸립니다. 하지만 정말 간단한 방법이 있는데, 바로 여기서 리터럴이 우리를 구출해 줍니다.
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