Java에서 파일에 바이트 쓰기
-
FileOutputStream
을 사용하여 Java에서 파일에 바이트 쓰기 -
java.nio.file
을 사용하여 파일에 바이트 쓰기 -
Apache Commons IO
라이브러리를 사용하여 Java에서 파일에 바이트 쓰기
이 프로그램은 Java에서 파일에 바이트 배열을 쓰는 방법을 보여줍니다. 이 작업은 FileOutputStream
과 이 기사에서 언급한 일부 라이브러리를 사용하여 수행할 수 있습니다.
FileOutputStream
을 사용하여 Java에서 파일에 바이트 쓰기
Java의 FileOutputStream
클래스는 데이터 또는 바이트 스트림을 파일에 쓰는 데 사용되는 출력 스트림입니다. 생성자 FileOutputStream(File file)
은 아래 코드에서 생성한 File
객체 file
로 표시되는 파일에 쓸 파일 출력 스트림을 생성합니다.
String
유형의 변수 s
는 문자열을 바이트 시퀀스로 변환하고 바이트 배열을 반환하는 getBytes()
메서드로 전달됩니다. write()
메소드는 바이트 배열을 인수로 취하고 바이트 배열 b
에서 이 파일 출력 스트림에 b.length 바이트를 씁니다.
주어진 경로에 확장자가 .txt
인 파일이 생성되고, 이를 열면 s
변수에 저장된 문자열과 동일한 내용을 볼 수 있습니다.
import java.io.File;
import java.io.FileOutputStream;
public class ByteToFile {
public static void main(String args[]) {
File file = new File("/Users/john/Desktop/demo.txt");
try {
FileOutputStream fout = new FileOutputStream(file);
String s = "Example of Java program to write Bytes using ByteStream.";
byte b[] = s.getBytes();
fout.write(b);
} catch (Exception e) {
e.printStackTrace();
}
}
}
java.nio.file
을 사용하여 파일에 바이트 쓰기
Java NIO ( New I/O)
패키지는 파일, 디렉토리에서 작동하는 정적 메소드로 구성되며 대부분 Path
객체에서 작동합니다. Path.get()
은 문자열 시퀀스 또는 경로 문자열을 Path로 변환하는 정적 메서드입니다. 단순히 FileSystems.getDefault().getPath()
를 호출합니다.
따라서 파일 경로와 문자열에서 변환된 바이트 배열을 전달하여 Files.write()
메서드를 사용하여 바이트 배열 b
를 파일에 쓸 수 있습니다.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ByteToFile {
public static void main(String args[]) {
Path p = Paths.get("/Users/john/Desktop/demo.txt");
try {
String s = "Write byte array to file using java.nio";
byte b[] = s.getBytes();
Files.write(p, b);
} catch (IOException ex) {
System.err.format("I/O Error when copying file");
}
}
}
Apache Commons IO
라이브러리를 사용하여 Java에서 파일에 바이트 쓰기
이 라이브러리에 대한 maven 종속성은 다음과 같습니다.
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Apache Commons IO
라이브러리에는 FilesUtils 클래스가 있고 writeByteArrayToFile()
메서드가 있습니다. 이 메서드는 대상 경로와 우리가 쓰고 있는 이진 데이터를 사용합니다. 대상 디렉토리 또는 파일이 존재하지 않으면 생성됩니다. 파일이 존재하는 경우 쓰기 전에 잘립니다.
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.FileUtils;
public class ByteToFile {
public static void main(String args[]) {
{
File file = new File("doc.txt");
byte[] data =
"Here, we describe the general principles of photosynthesis"
.getBytes(StandardCharsets.UTF_8);
try {
FileUtils.writeByteArrayToFile(file, data);
System.out.println("Successfully written data to the file");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
출력:
Successfully written data to the file
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn