How to create a file in Java

author image

In Java, there are many ways to create and write to a file.

  1. Files.newBufferedWriter (Java 8)
  2. Files.write (Java 7)
  3. PrintWriter
  4. File.createNewFile

Note
I prefer the Java 7 nio Files.write to create and write to a file, because it has much cleaner code and auto close the opened resources.

                              Files.write(         Paths.get(fileName),         data.getBytes(StandardCharsets.UTF_8));                          

1. Java 8 Files.newBufferedWriter

1.1 This example shows how to use the new Java 8 Files.newBufferedWriter to create and write to a file.

CreateFileJava8.java

                              package com.mkyong.io.file;  import java.io.BufferedWriter; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths;  public class CreateFileJava8 {      public static void main(String[] args) {          String fileName = "/home/mkyong/newFile.txt";          Path path = Paths.get(fileName);          // default, create, truncate and write to it.         try (BufferedWriter writer =                      Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {              writer.write("Hello World !!");          } catch (IOException e) {             e.printStackTrace();         }          /* Append mode.         try (BufferedWriter writer =                      Files.newBufferedWriter(path,                              StandardCharsets.UTF_8,                              StandardOpenOption.APPEND)){              writer.write("Hello World !!");          } catch (IOException e) {             e.printStackTrace();         }*/      } }                          

2. Java 7 Files.write

2.1 This example shows how to use the Java 7 nio Files.write to create and write to a file.

By default, it opens a file for writing; create the file if it doesn't exist; truncate the current content if the file exists.

CreateFileNio.java

                              package com.mkyong.io.file;  import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths;  public class CreateFileNio {      public static void main(String[] args) {          String fileName = "/home/mkyong/newFile.txt";         String content = "hello world!";          try {              // Java 1.7             // default, create and write to it.             Files.write(                     Paths.get(fileName),                     content.getBytes(StandardCharsets.UTF_8));              // Append content             /*Files.write(                     Paths.get(fileName),                     content.getBytes(StandardCharsets.UTF_8),                     StandardOpenOption.APPEND);*/          } catch (IOException e) {             e.printStackTrace();         }      }  }                          

2.2 Review the Files.write. source code; it uses the try-with-resources to auto-close the opened resources.

Files.java

                              package java.nio.file;    public final class Files {        public static Path write(Path path, byte[] bytes, OpenOption... options)             throws IOException       {           // ensure bytes is not null before opening file           Objects.requireNonNull(bytes);            try (OutputStream out = Files.newOutputStream(path, options)) {               int len = bytes.length;               int rem = len;               while (rem > 0) {                   int n = Math.min(rem, BUFFER_SIZE);                   out.write(bytes, (len-rem), n);                   rem -= n;               }           }           return path;       }        //...   }                          

3. PrintWriter

3.1 This example shows how to use PrintWriter to create and write to a file.

CreateFile.java

                              package com.mkyong.io.file;  import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets;  public class CreateFile {      public static void main(String[] args) {          String fileName = "/home/mkyong/newFile.txt";          // Java 10, new constructor, support Charsets         try (PrintWriter writer = new PrintWriter(fileName, StandardCharsets.UTF_8)) {              writer.println("first line!");             writer.println("second line!");          } catch (IOException e) {             e.printStackTrace();         }          // Java 1.5         /*try (PrintWriter writer = new PrintWriter(fileName, "UTF-8")) {              writer.println("first line!");             writer.println("second line!");          } catch (IOException e) {             e.printStackTrace();         }*/     } }                          

4. File.createNewFile()

4.1 This example shows how to use the File.createNewFile() to create an empty file, and the FileWriter to write data to the file.

CreateFile2.java

                                  package com.mkyong.io.file;  import java.io.File; import java.io.FileWriter; import java.io.IOException;  public class CreateFile2 {      public static void main(String[] args) {          String fileName = "/home/mkyong/newFile.txt";          try {              File file = new File(fileName);              // true if file does no exist and was created successfully.             // false if file is already exists             if (file.createNewFile()) {                 System.out.println("File is created!");             } else {                 System.out.println("File already exists.");             }              // Write to file             try (FileWriter writer = new FileWriter(file)) {                 writer.write("Hello World!");             }          } catch (IOException e) {             e.printStackTrace();         }      }  }                              

Download Source Code

References

  • Oracel Tutorial – Catching and Handling Exceptions
  • Files.newBufferedWriter JavaDoc
  • Files.write JavaDoc
  • PrintWriter JavaDoc
  • File.createNewFile JavaDoc
  • FileWriter JavaDoc

author image

Comments