Table of Contents

Print Writer


The PrintWriter class is a simple way of writing to files in Java io. It can be used in many ways and offers a great deal of methods inside the class. Some of these are quite common methods throughout the language itself. I will go through them step by step, giving examples for each. Let's get started:


Println()

Probably the first method learned in Java was the System.out.println() method. Well, this can be applied to the same thing in the PrintWriter class! It uses most all the same core methods as console (Windows CMD, or Mac Terminal) output. Below is an example of a program that will create a file, open the file, and then write a line “Hello World” inside it, then close it. (closing a file is extremely important).

import java.io.PrintWriter; // used for importing the io operations
 
public class OpenWriteCloseFile 
{
   public static void main(String[] args)
   {
 
       // for all of io actions, you must use the try/catch block
 
       try {
       // here, we create a new file for the computer to read
       File f = new File("name of file");
 
       // here, we create a way to write to that file, the PrintWriter class takes the file you have created
       // and opens it inside the background, so that the program may write to it later on.
       PrintWriter printWriter = new PrintWriter(f);
 
       // this will take the printwriter and it will write to the file "Hello World!" as seen in the ()       
       printWriter.println("Hello World!");
 
       // you MUST close the file, if not, the file will not be seen as written to, and will cause much frustration and 
       // anxiety!
       printWriter.close();
       }
       catch (IOException e) {
          //prints out line onto console
          // for better visualization of error
          System.out.println(e.getMessage());
       }
   }
}  

Print()

Now, let us move on to the print() method. Like the println() method, it displays text, numbers, and more; however, there is a difference. With the println() method, it will write the text and will add what is called a 'new line' onto the end. It can be commonly explained by writing the text, and hitting the enter key to go down one. This is what the println() method does. (eliminates the need for enter). The print() method just prints whatever you tell it to, and that's that. Let's look at an example, but for this example, instead of using words, we will use numbers.

import java.io.PrintWriter;
 
public class WriteNumbersToFile {
 
   public static void main(String[] args) {
 
       // if you're looking at this article, I will assume that you know the many data types
 
       int    i = 0;
       double d = 10.0;
       float  f = 100f; // the f is required for floating point numbers
       long   l = 1000;
 
       // here we do the same as above. Creating the file, opening it, and writing to the file
       // we have to use a try/catch block in file io
 
       try {
           File f = new File("testFile.txt");
           PrintWriter printWriter = new PrintWriter(f);
 
           printWriter.print(i);
 
           // printing i + 1
           printWriter.print(i++);
 
           // printing 1 + i
           printWriter.print(++i);
 
           // printing the double
           printWriter.print(d);
 
           //printing d + 1
           printWriter.print(d++);
 
           // printing 1 + d
           printWriter.print(++d);
 
           //printing f
           printWriter.print(f);
 
           //printing f + 1
           printWriter.print(f++);
 
           //printing 1 + f
           printWriter.print(++f);
 
           // printing l
           printWriter.print(l);
 
           // printing l + 1
           printWriter.print(l++);
 
           //printing 1 + l
           printWriter.print(++l); 
 
           // DONT FORGET TO CLOSE
           printWriter.close();
 
           // this will cause all the numbers to be shown in a straight line
           // as this: 38472095823405720384
 
           // experiment with this class and have fun learning new things!
           }
           catch (IOException e) {
                // this will catch the exception
                // and print it out onto console
                // for you to read easier 
                System.out.print(e.getMessage());
           }         
   }
}

Printf()

The next common method that is learned when starting Java is the method called printf(). This method is used to show information in specific ways to the user. The most common ways of printf() are:

* Major programs that require using indentation

* Big applications that display information in a specific format.


Here, we will write a program that will take a String (words), an int, and a float value.

Before we begin, there are some things any person using printf() needs to know:

String Formatting Integer Formatting Float Formatting
1 space of text %s 1 space for int: %1d or %1i 1 space for float: %1f
10 spaces: %10s 10 spaces for int: %10d or %10i 10 spaces with 2 decimal places after decimal: %10.2f
100 spaces: %100s 100 spaces for int: %100d or %100i 100 spaces with 15 decimal places: %100.15f

NOTE: The table above is only with the most basic usage of ''printf()'' There is not enough time to explain the full uses of the function, trial and run is the best way

Now that we have that all cleared, let's write our program!

import java.io.PrintWriter;
 
public class WriteUsingPrintF {
 
   public static void main(String[] args) {
 
      try {
          String formattedString = "formatting";
          int integer = 100;
          float floatNumber = 100f;
 
          File f = new File("formatFile.txt");
          PrintWriter printWriter = new PrintWriter(f);
 
          // writing the formatted string to show 1 space of text
          printWriter.printf("%s\n", formattedString);
 
          // writing the formatted string to show 10 spaces of text
          printWriter.printf("%10s\n", formattedString);
 
          // writing the formatted string to show 100 spaces of text
          printWriter.printf("%100s\n", formattedString);
 
          // writing the formatted int to show 1 space of number
          printWriter.printf("%i\n", integer);
 
          // writing the formatted int to show 10 spaces of number
          printWriter.printf("%10i\n", integer);
 
          // writing the formatted int to show 100 spaces of number
          printWriter.printf("%100i\n", integer);
 
          // writing the formatted float to show 1 space of number
          printWriter.printf("%1f\n", floatNumber);
 
           // writing the formatted float to show 10 spaces of number with 2 decimal places 
          printWriter.printf("%10.2f\n", floatNumber);
 
           // writing the formatted float to show 100 spaces of number with 15 decimal places 
          printWriter.printf("%100.15f\n", floatNumber);
 
           // making sure to close the file!
           printWriter.close();          
 
      } catch (IOException e) {
          System.out.println(e.getMessage());
      }
   }
 
}

What Next?

Take your newly learned skills, and progress them. Don't be afraid to crash your program by messing up a few lines! It won't cause your computer to explode! ^_^

Write programs that write files. Write a program that writes a story by adding on a certain character so many times. The possibilities are endless!

I would LOVE to hear from you!! Tell me all about your program(s), the way you made them, and how you came about making them!

Email me at: bowmananthony95@gmail.com