The point is this line
while (!(st=buffrdr.readLine()).isEmpty())
Your code will wait for the line to terminate. That is, till it finds "\n" character; It will keep buffering and hence will not come out of loop. So either in the input stream manage to have quick lines. Or read through bytes.
You should probably read bytes and work along.
int i=0;
char[] buf = new char[10000]
while((i=buffrdr.read(buf,i,100))!= -1)
{
String h = new String(buf);
//use h o print accordingly.