[java] 파일을 작성하여 Java로 작성하는 방법

Java에서 (텍스트) 파일을 작성하고 쓰는 가장 간단한 방법은 무엇입니까?



답변

아래의 각 코드 샘플은 throw 될 수 있습니다 IOException. 간결성을 위해 try / catch / finally 블록은 생략되었습니다. 예외 처리에 대한 정보는 이 학습서 를 참조하십시오 .

아래의 각 코드 샘플은 파일이 이미 존재하는 경우 파일을 덮어 씁니다.

텍스트 파일 만들기 :

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

이진 파일 만들기 :

byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();

Java 7 이상 사용자는 Files클래스를 사용하여 파일에 쓸 수 있습니다.

텍스트 파일 만들기 :

List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, StandardCharsets.UTF_8);
//Files.write(file, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);

이진 파일 만들기 :

byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);


답변

Java 7 이상에서 :

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
              new FileOutputStream("filename.txt"), "utf-8"))) {
   writer.write("something");
}

그래도 유용한 유틸리티가 있습니다.

참고 또한 그 를 사용 FileWriter하지만, 종종 나쁜 생각 기본 인코딩을 사용 – 명시 적으로 인코딩을 지정하는 것이 가장 좋습니다.

아래는 Java 7 이전의 원래 답변입니다.


Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("filename.txt"), "utf-8"));
    writer.write("Something");
} catch (IOException ex) {
    // Report
} finally {
   try {writer.close();} catch (Exception ex) {/*ignore*/}
}

파일 읽기, 쓰기 및 작성 (NIO2 포함) 도 참조하십시오 .


답변

파일에 작성하려는 컨텐츠가 이미 있고 (즉석에서 생성되지 않은 경우) java.nio.file.Files기본 I / O의 일부로 Java 7에 추가하면 목표를 달성하는 가장 간단하고 효율적인 방법을 제공합니다.

기본적으로 파일을 작성하고 쓰는 것은 한 줄로, 하나의 간단한 메소드 호출입니다 !

다음 예제는 6 개의 다른 파일을 작성하고 사용하여 사용 방법을 보여줍니다.

Charset utf8 = StandardCharsets.UTF_8;
List<String> lines = Arrays.asList("1st line", "2nd line");
byte[] data = {1, 2, 3, 4, 5};

try {
    Files.write(Paths.get("file1.bin"), data);
    Files.write(Paths.get("file2.bin"), data,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
    Files.write(Paths.get("file3.txt"), "content".getBytes());
    Files.write(Paths.get("file4.txt"), "content".getBytes(utf8));
    Files.write(Paths.get("file5.txt"), lines, utf8);
    Files.write(Paths.get("file6.txt"), lines, utf8,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}


답변

public class Program {
    public static void main(String[] args) {
        String text = "Hello world";
        BufferedWriter output = null;
        try {
            File file = new File("example.txt");
            output = new BufferedWriter(new FileWriter(file));
            output.write(text);
        } catch ( IOException e ) {
            e.printStackTrace();
        } finally {
          if ( output != null ) {
            output.close();
          }
        }
    }
}


답변

다음은 파일을 작성하거나 덮어 쓰는 예제 프로그램입니다. 긴 버전이므로 더 쉽게 이해할 수 있습니다.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class writer {
    public void writing() {
        try {
            //Whatever the file path is.
            File statText = new File("E:/Java/Reference/bin/images/statsTest.txt");
            FileOutputStream is = new FileOutputStream(statText);
            OutputStreamWriter osw = new OutputStreamWriter(is);
            Writer w = new BufferedWriter(osw);
            w.write("POTATO!!!");
            w.close();
        } catch (IOException e) {
            System.err.println("Problem writing to the file statsTest.txt");
        }
    }

    public static void main(String[]args) {
        writer write = new writer();
        write.writing();
    }
}


답변

Java로 파일을 작성하고 쓰는 매우 간단한 방법 :

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class CreateFiles {

    public static void main(String[] args) {
        try{
            // Create new file
            String content = "This is the content to write into create file";
            String path="D:\\a\\hi.txt";
            File file = new File(path);

            // If file doesn't exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);

            // Write in file
            bw.write(content);

            // Close connection
            bw.close();
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}


답변

사용하다:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt"), StandardCharsets.UTF_8))) {
    writer.write("text to write");
}
catch (IOException ex) {
    // Handle me
}  

를 사용 try()하면 스트림이 자동으로 닫힙니다. 이 버전은 짧고 빠르며 (버퍼링) 인코딩을 선택할 수 있습니다.

이 기능은 Java 7에서 도입되었습니다.