KP65
KP65

Reputation: 13585

Java- FileWriter/BufferedWriter - appending to end of a text file?

I've done this before once, I'm trying to replicate what I did so far and this is what I've got:

    try {
        BufferedWriter writer = new BufferedWriter(new FileWriter("file.P", true));
        System.out.println("entered");
        if (!(newUserName.isEmpty()) || (newUserPass.isEmpty())){
            writer.newLine();
            writer.write("hellotest123");
            writer.close();
        }

It seems to find file.P, which is just a txt file, but it doesn't seem to append anything onto it? It enters the code and passes the IF statement fine, but nothing is appended to the text file? I'm slightly stuck!

Upvotes: 2

Views: 18684

Answers (3)

Shane
Shane

Reputation: 1

Shouldn't your if statement have two apostrophes and &&? requiring user and pass instead of no user or pass?

if (!(newUserName.isEmpty()) && !(newUserPass.isEmpty())){

Upvotes: 0

Kris
Kris

Reputation: 14458

Are you sure it is finding file.P and not just creating a new one elsewhere in the file system? Try an absolute path, just to make certain you and the program are looking at the same file.

Edit:

Based on the comment that the file is on the class path you should be using the following method of resolving it:

MyClass.class.getResource("file.P");

This will find file.P on the classpath in the same "package" or folder as MyClass.class

Upvotes: 5

Kannan Ekanath
Kannan Ekanath

Reputation: 17601

1) Can you try calling the writer.flush() ? The code looks like it calls flush on close but would be better to confirm this.

2) Can you also print the full location of the file ? Perhaps it is appending in the tmp directory or the wrong location?

Upvotes: 0

Related Questions