Search code examples
javafilestackfilewriter

write to file from stack


folks. I'm trying to write to a file from a stack. The stack was created by reading from another file. I'm using the stack so that I can reverse the file I read in. The file names to read and write to are from the command line. This is how I have my stack implemented:

while(read.hasNext()) {
stack.push(read.next());}

The code for my other file that the stack is supposed to write to:

FileWriter w = null;
        try {
            w = new FileWriter(new File(args[1]));
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (!stack.isEmpty()) { //this was a while statement
            try {
                w.write(stack.pop());
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("Didn't make it.");
        }

The problem that I'm having is when I run my program, the file I want to write to is created, but nothing gets written to the file. I originally thought that my stack didn't have anything in it (that's why I changed my while statement to an if; it's temporary). The "Didn't make it." didn't print so I now know it's not that. What am I doing wrong here? Any help is appreciated.


Solution

  • After w.write(stack.pop()); call the fush() method:

    w.write(stack.pop());
    w.flush();
    

    and you can return the while statement. At the end call w.close();