Re: System.out PrintWriter print() and flush() not flushing?
On 5 Mrz., 09:13, Roedy Green <see_webs...@mindprod.com.invalid>
wrote:
On Thu, 28 Feb 2008 20:26:51 -0800 (PST), Karsten Wutzke
<kwut...@web.de> wrote, quoted or indirectly quoted someone who said :
Does anyone know how to print only a dot without a newline? How?
just use the print() and flush() or autoflush on the open.
Seehttp://mindprod.com/applet/fileio.html
for details.
--
Roedy Green Canadian Mind Products
The Java Glossaryhttp://mindprod.com
Just recognized I completely messed up code formatting:
while ( sck.isConnected() && !sck.isClosed() )
{
boolean doNewline = false;
try
{
//times out according to socket (here one sec)
String strMessage = br.readLine();
if ( strMessage != null )
{
if ( doNewline )
{
System.out.println();
}
System.out.println(" IN <<< '" + strMessage + "'");
Message msg = mf.createIncomingMessage(strMessage);
processIncomingMessage(msg);
doNewline = false;
}
Thread.sleep(msec);
}
catch ( SocketTimeoutException ste )
{
//doesn't flush
System.out.print(".");
System.out.flush();
doNewline = true;
}
catch ( Exception e )
{
e.printStackTrace();
}
}
Again, this lets the loop check the input stream every X msec, if the
string is non null, print what came in, otherwise br.readLine will
block, because of the timeout of Y msec a SocketTimeoutException is
thrown, print a simple dot to the console.
As I said, nothing gets printed until another newline or program end.
Karsten