$show=/label

How to use PrintWriter and File classes in Java?

SHARE:

A quick guide to PrintWriter, How to use printwriter in java and along with the File api classes in java.

1. Overview

In this tutorial, We'll learn how to use PrintWriter class along with the File api classes in java.

In the previous article, we've shown what are the methods of PrintWriter and their examples.

If you want to write some contents to the file using printwriter then you need to make sure the file path given must exist else will get a file not found exception at the runtime.

In this post, we will show you how to always the directory and file is available to the printwriter and avoid errors.

Let us write a few examples to understand the file handling with PrintWriter.


How to use PrintWriter and File classes in Java?



2. Use PrintWriter write to File - when Folder exists


Let us create a simple example program to demonstrate to write the contents to file when the given folder exists.

Example 1

package com.javaprogramto.files.printwriter.tofile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class PrintWriterToFileExample1 {

	public static void main(String[] args) throws FileNotFoundException {
		
		File file = new File("src/main/resources/print_writer/test2.txt");
		
		PrintWriter writer = new PrintWriter(file);
		
		writer.println("Line 1");
		writer.println("Line 2");
		writer.println("Line 3");
		
		writer.flush();
		
		writer.close();
		System.out.println("Done");

	}

}

Output

Contents are written to the file.

Use PrintWriter write to File




3. Use PrintWriter write to File - When Folder Not Exists


When the folder is present, the program is executed successfully with no errors. But what happens when provided file path does not exist?

Here the path is added with folder "file" which is physical does not exist.

Example 2

package com.javaprogramto.files.printwriter.tofile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class PrintWriterToFileExample2 {

	public static void main(String[] args) throws FileNotFoundException {
		
		File file = new File("src/main/resources/print_writer/file/test2.txt");
		
		PrintWriter writer = new PrintWriter(file);
		
		writer.println("Line 1");
		writer.println("Line 2");
		writer.println("Line 3");
		
		writer.flush();
		
		writer.close();
		System.out.println("Done");

	}

}

Output

Exception in thread "main" java.io.FileNotFoundException: src/main/resources/print_writer/file/test2.txt (No such file or directory)
	at java.base/java.io.FileOutputStream.open0(Native Method)
	at java.base/java.io.FileOutputStream.open(FileOutputStream.java:291)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:234)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:184)
	at java.base/java.io.PrintWriter.<init>(PrintWriter.java:309)
	at com.javaprogramto.files.printwriter.tofile.PrintWriterToFileExample2.main(PrintWriterToFileExample2.java:13)

So, when the folder is not created already then this program ended up in the error.


4. Use PrintWriter write to File - Create Folder Programmatically


So now when the folder is not created it terminates the application with an error.

Now, we want to create the missing folders dynamically at runtime. File API has few utility methods that handle the folder creation if it does not exist.

Use File.getParentFile().mkdirs() method to create the missing folders.


Example 3
package com.javaprogramto.files.printwriter.tofile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

public class PrintWriterToFileExample3 {

	public static void main(String[] args) throws FileNotFoundException {
		
		File file = new File("src/main/resources/print_writer/file/test2.txt");
		file.getParentFile().mkdirs();
		
		PrintWriter writer = new PrintWriter(file);
		
		writer.println("Line 1");
		writer.println("Line 2");
		writer.println("Line 3");
		
		writer.flush();
		
		writer.close();
		System.out.println("Done");

	}
}

Look at the below image, we do not have the folder with the name "file" in the directory src/main/resources/print_writer/.

file folder does not exist




Output

Run this program and see the output below to see this throws the exception or not.


creating missing folders using file api mkdirs()

The above code runs successfully and folders are created for missing ones.


5. Use PrintWriter write to File - With File.createNewFile()


You can try using the File class createNewFile() method but this throws the IOException if the folder does not exist and this method creates only the file but not the missing folder.

Example 4

File file = new File("src/main/resources/print_writer/file/test2.txt");
		file.createNewFile();

Output
Exception in thread "main" java.io.IOException: No such file or directory
	at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.base/java.io.File.createNewFile(File.java:1027)
	at com.javaprogramto.files.printwriter.tofile.PrintWriterToFileExample3.main(PrintWriterToFileExample3.java:13)a
Failed because the folder is not present.


6. Conclusion


In this article, we've seen how to use PrintWriter with File api classes.

Use File.getParentFile().mkdirs() method to get created missing folders.




COMMENTS

BLOGGER

About Us

Author: Venkatesh - I love to learn and share the technical stuff.
Name

accumulo,1,ActiveMQ,2,Adsense,1,API,37,ArrayList,18,Arrays,24,Bean Creation,3,Bean Scopes,1,BiConsumer,1,Blogger Tips,1,Books,1,C Programming,1,Collection,8,Collections,37,Collector,1,Command Line,1,Comparator,1,Compile Errors,1,Configurations,7,Constants,1,Control Statements,8,Conversions,6,Core Java,149,Corona India,1,Create,2,CSS,1,Date,3,Date Time API,38,Dictionary,1,Difference,2,Download,1,Eclipse,3,Efficiently,1,Error,1,Errors,1,Exceptions,8,Fast,1,Files,17,Float,1,Font,1,Form,1,Freshers,1,Function,3,Functional Interface,2,Garbage Collector,1,Generics,4,Git,9,Grant,1,Grep,1,HashMap,2,HomeBrew,2,HTML,2,HttpClient,2,Immutable,1,Installation,1,Interview Questions,6,Iterate,2,Jackson API,3,Java,32,Java 10,1,Java 11,6,Java 12,5,Java 13,2,Java 14,2,Java 8,128,Java 8 Difference,2,Java 8 Stream Conversions,4,java 8 Stream Examples,12,Java 9,1,Java Conversions,14,Java Design Patterns,1,Java Files,1,Java Program,3,Java Programs,114,Java Spark,1,java.lang,4,java.util. function,1,JavaScript,1,jQuery,1,Kotlin,11,Kotlin Conversions,6,Kotlin Programs,10,Lambda,2,lang,29,Leap Year,1,live updates,1,LocalDate,1,Logging,1,Mac OS,3,Math,1,Matrix,6,Maven,1,Method References,1,Mockito,1,MongoDB,3,New Features,1,Operations,1,Optional,6,Oracle,5,Oracle 18C,1,Partition,1,Patterns,1,Programs,1,Property,1,Python,2,Quarkus,1,Read,1,Real Time,1,Recursion,2,Remove,2,Rest API,1,Schedules,1,Serialization,1,Servlet,2,Sort,1,Sorting Techniques,8,Spring,2,Spring Boot,23,Spring Email,1,Spring MVC,1,Streams,31,String,61,String Programs,28,String Revese,1,StringBuilder,1,Swing,1,System,1,Tags,1,Threads,11,Tomcat,1,Tomcat 8,1,Troubleshoot,26,Unix,3,Updates,3,util,5,While Loop,1,
ltr
item
JavaProgramTo.com: How to use PrintWriter and File classes in Java?
How to use PrintWriter and File classes in Java?
A quick guide to PrintWriter, How to use printwriter in java and along with the File api classes in java.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-EhBeq6JMYi-hF4e0WiQjjoK-aSZ9yfGAG08pQV_9H1_-RW8Md-cBxlEz3b4ufORBD9cAQ_2aSgJ-M2r0HU6H-dzlbRv-uCWc3yT206ynvNCQth5DAv4Jw5pznxMdZ4cvRlYBUSpwLs0/w640-h388/How+to+use+PrintWriter+and+File+classes+in+Java%253F.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-EhBeq6JMYi-hF4e0WiQjjoK-aSZ9yfGAG08pQV_9H1_-RW8Md-cBxlEz3b4ufORBD9cAQ_2aSgJ-M2r0HU6H-dzlbRv-uCWc3yT206ynvNCQth5DAv4Jw5pznxMdZ4cvRlYBUSpwLs0/s72-w640-c-h388/How+to+use+PrintWriter+and+File+classes+in+Java%253F.png
JavaProgramTo.com
https://www.javaprogramto.com/2021/12/how-to-use-printwriter-in-java.html
https://www.javaprogramto.com/
https://www.javaprogramto.com/
https://www.javaprogramto.com/2021/12/how-to-use-printwriter-in-java.html
true
3124782013468838591
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content