Advertise with us

How to Write text file Java

The following code does not produce a file (I can't see the file anywhere). What is missing?

try

{
    //create a temporary file
    String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
    File logFile=new File(timeLog);

    BufferedWriter writer = new BufferedWriter(new FileWriter(logFile));
    writer.write (string);

    //Close writer
    writer.close();
} catch(Exception e)
{
    e.printStackTrace();
}


Last updated:10/4/2013 9:30:07 AM

1 Answers

jacob rasel
jacob rasel

I think your expectations and reality don't match (but when do they ever ;))

Basically, where you think the file is been written and where the file is actually been written are not equal (hmmm, perhaps I should write and if statement ;))

public class TestWriteFile {

    public static void main(String[] args) {
        BufferedWriter writer = null;
        try {
            //create a temporary file
            String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
            File logFile = new File(timeLog);
            // This will output the full path where the file will be written to...
            System.out.println(logFile.getCanonicalPath());
            writer = new BufferedWriter(new FileWriter(logFile));
            writer.write("Hello world!");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                // Close the writer regardless of what happens...
                writer.close();
            } catch (Exception e) {
            }
        }
    }
}

Also note that your example will override any existing files. If you want to append the text to the file you should...

writer = new BufferedWriter(new FileWriter(logFile, true));

Instead...

Last updated:10/4/2013 9:30:07 AM

Answer