Como criar um arquivo e escrever dados nele em Java
- 
          
            PrintWriterpara criar arquivo em Java
- 
          
            Filespara criar arquivo em Java
- 
          
            BufferedWriterpara criar um arquivo em Java
- 
          
            FileWriterpara criar um arquivo em Java
 
Este tutorial discute métodos para criar um arquivo texto e escrever dados para ele em Java.
Java tem vários métodos para criar um arquivo. A única coisa a ser lembrada é que o bloco try-catch é necessário para quase todos os métodos de criação de arquivos, para que qualquer Exceção IO seja tratada graciosamente. Não se esqueça de utilizá-lo.
PrintWriter para criar arquivo em Java
O PrintWriter em Java permite a criação de um novo arquivo com a codificação especificada. Aqui está um exemplo.
import java.io.*;
public class Main {
  public static void main(String[] args) {
    String fileName = "my-file.txt";
    String encoding = "UTF-8";
    try {
      PrintWriter writer = new PrintWriter(fileName, encoding);
      writer.println("The first line");
      writer.println("The second line");
      writer.close();
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}
Files para criar arquivo em Java
Também podemos utilizar java.nio.file para criar um arquivo e escrever dados para ele. O exemplo abaixo ilustra esta abordagem.
import java.io.*;
import java.nio.charset.*;
import java.nio.file.*;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    String fileName = "my-file.txt";
    try {
      List<String> lines = Arrays.asList("The first line", "The second line");
      Path file = Paths.get(fileName);
      Files.write(file, lines, StandardCharsets.UTF_8);
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}
Neste exemplo, nós escrevemos os dados de uma ArrayList para o arquivo de forma que cada elemento da ArrayList seja escrito em uma nova linha no arquivo de saída. O arquivo de saída tem este aspecto:
> The first line
> The second line
BufferedWriter para criar um arquivo em Java
O exemplo abaixo ilustra a criação e escrita de um arquivo utilizando o BufferedWriter.
import java.io.*;
import java.nio.charset.*;
import java.util.*;
public class Main {
  public static void main(String[] args) {
    Charset utf8 = StandardCharsets.UTF_8;
    List<String> list = Arrays.asList("This is the first line", "This is the second line");
    String content = "This is my content";
    try {
      // File name with path
      String fileName = "my-file.txt";
      File myFile = new File(fileName);
      FileOutputStream fos = new FileOutputStream(myFile);
      OutputStreamWriter osw = new OutputStreamWriter(fos);
      Writer writer = new BufferedWriter(osw);
      // Write data using a String variable
      writer.write(content + "\n");
      // Write data from an ArrayList
      for (String s : list) {
        writer.write(s + "\n");
      }
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}
O arquivo de saída tem este aspecto:
> This is my content
> This is the first line
> This is the second line
FileWriter para criar um arquivo em Java
Outro método comum para criar um novo arquivo e escrever nele em Java é utilizar o FileWriter.
import java.io.*;
public class Main {
  public static void main(String[] args) {
    try {
      FileWriter myWriter = new FileWriter("my-file.txt");
      myWriter.write("We can also create a file and write to it using FileWriter");
      myWriter.close();
    } catch (IOException e) {
      System.out.println("An error occurred.");
      e.printStackTrace();
    }
  }
}
O arquivo de saída tem este aspecto:
> We can also create a file and write to it using FileWriter