Java에서 파일에 바이트 쓰기

Rupam Yadav 2023년10월12일
  1. FileOutputStream을 사용하여 Java에서 파일에 바이트 쓰기
  2. java.nio.file을 사용하여 파일에 바이트 쓰기
  3. Apache Commons IO 라이브러리를 사용하여 Java에서 파일에 바이트 쓰기
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 Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

관련 문장 - Java Byte

관련 문장 - Java File