Database ( DB )/Database

java - write to file

노루아부지 2021. 5. 16. 22:41

 

java에서는 다음 클래스들을 이용하여 파일을 쓸 수 있습니다.

 

java - write to file

  1. BufferedWriter
  2. PrintWriter
  3. FileOutputStream
  4. java.nio.file

 

 

1. BufferedWriter

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

public class Test {
  public static void main(String[] args) {
    File file = new File("e:/text.txt");
    String str = "Hello world!";
    BufferedWriter writer = null;

    try {
      writer = new BufferedWriter(new FileWriter(file));
      writer.write(str);
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      if(writer != null) {
        try {
          writer.close();
        }
        catch(Exception ignored) { }
      }
    }
  }
}
  • 파일이 존재하지 않는 경우 파일을 생성합니다.(경로가 없는 경우는 에러가 발생합니다.
  • 반드시 close()를 호출해야 합니다.
  • 만약 아래 코드처럼 try-with-resources를 사용한다면 try가 마지막에 close()를 알아서 호출해주기 때문에 직접 호출하지 않아도 됩니다.
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Test {
  public static void main(String[] args) {
    File file = new File("e:/text.txt");
    String str = "Hello world!";

    try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
      writer.write(str);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

 

 

2. PrintWriter

import java.io.*;

public class Test {
  public static void main(String [] args) {
    File file = new File("e:/text.txt");
    try {
      FileWriter fileWriter = new FileWriter(file);
      PrintWriter printWriter = new PrintWriter(fileWriter);
      printWriter.println("Hello World!");
      printWriter.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}
  • FileWriter도 마찬가지로 close()를 꼭 호출해야 합니다.
  • try-with-resources를 사용하면 close()를 호출하지 않아도 됩니다.

 

 

3. FileOutputStream

import java.io.*;

public class Test {
  public static void main(String argsp[]) {
    try {
      FileOutputStream fos = new FileOutputStream("c:/text.txt", true);
	  fos.write("Spain\r\n".getBytes());
	  fos.write("Spain\r\n".getBytes());
	  fos.close();
    } catch (IOException e) {
	  e.printStackTrace();
	}
  }
}
  • FileOutputStream도 마찬가지로 close()를 꼭 호출해야 합니다.
  • try-with-resources를 사용하면 close()를 호출하지 않아도 됩니다.

 

 

4. java.nio.file

JDK 7에 도입 된 java.nio.file의 기능을 사용하여 파일에 콘텐츠를 추가 할 수도 있습니다.

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public static void main(String args[]) {
  try {
    String contentToAppend = "Spain\r\n";
    Files.write(
      Paths.get("c:/text.txt"),
      contentToAppend.getBytes(),
      StandardOpenOption.APPEND);
    }
  catch(IOException e) {}
}

 

728x90
loading