In Java, there are many ways to create and write to a file.
Files.newBufferedWriter
(Java 8)Files.write
(Java 7)PrintWriter
File.createNewFile
Note
I prefer the Java 7 nioFiles.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.favtuts.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; import java.nio.file.StandardOpenOption; public class CreateFileJava8 { public static void main(String[] args) { String fileName = "/home/tvt/workspace/favtuts/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.favtuts.io.file; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; public class CreateFileNio { public static void main(String[] args) { String fileName = "/home/tvt/workspace/favtuts/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 (Exception 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.favtuts.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/tvt/workspace/favtuts/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.favtuts.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/tvt/workspace/favtuts/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!"); } // Append mode // try (FileWriter writer = new FileWriter(file, true)) { // writer.write("Hello World!"); // } } catch (IOException e) { e.printStackTrace(); } } }
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-io