Standard output by itself cannot do such a thing. To accomplish this, your Java program actually needs to control the terminal window which shows the output. I suggest you look into implementations of "curses" in Java, for example:

I'm not sure if your Java app can read termcap/terminfo, but it should be possible to send terminal control characters (or maybe backspace) to move the cursor around. (That's what curses does after all.)

You could display the information in an alternate manner. For example, you could plot a graph:

#===1===2===3===4===5===6===7===8===9===#

And fill up the line below it one character at a time as it progresses. For example, at 22.5%, it would look like:

#===1===2===3===4===5===6===7===8===9===#
#===1===2=

and the cursor is at the end of the second line, ready to display another character as necessary.

You can make this prettier if you're willing to assume an equal width font.

If you're willing to assume a *NIX-style environment, the character '\r' is a carriage return (without the line feed) -- it positions the cursor at the beginning of the current line. You could use this to achieve the effect you describe. (Backspace would usually work too, as mentioned)