Yes.
File.exists() method
The File.exists() method returns true if the file
corresponding to the File object already exists.
It can be used to avoid accedentally destroying a file.
First you need to create a File object.
Remember that creating a File does not actually create the corresponding
disk file.
File outFile = new File("myOutput.txt" );
if ( outFile.exists() ) throw new IOException( "File already exists");
output = new PrintWriter( outFile );
The constructor for IOException
can be given a message to include in the IOException object.
This is true of all Exception constructors.
The constructor for PrintWriter can be give a File object
rather than a string file name.
import java.io.*;
public class WriteTextFile
{
public static void main ( String[] args )
{
PrintWriter output = null;
try
{
File outFile = new File("myOutput.txt" );
if ( outFile.exists() ) throw new IOException( "File already exists");
output = new PrintWriter( outFile );
output.println( "The world is so full" );
output.println( "Of a number of things," );
output.println( "I'm sure we should all" );
output.println( "Be as happy as kings." );
}
catch ( IOException iox )
{
System.out.println( "Problem opening file:" );
System.out.println( iox.getMessage() );
}
if ( output != null ) output.close();
}
}
The revised program catches IOExceptions and writes out a helpful message.
If the file was opened, the program closes it.
But the program is careful not to close a file that is not open.
Here is a run of the program.
C:\JavaSource> java WriteTextFile Problem opening file: File already exists
Could the names of the input file and the output file come from the user?