How to identify end of InputStream in java

Posted by Vardhaman on Stack Overflow See other posts from Stack Overflow or by Vardhaman
Published on 2011-04-06T06:40:28Z Indexed on 2013/11/13 3:54 UTC
Read the original article Hit count: 98

Filed under:
|
|

I am trying to read bytes from server using Socket program, ie I am using InputStream to read the bytes. If I pass the length size I am able to read the bytes, but I am not sure what may be the length. So I am not able initialize the byte array.

Also I tried while (in.read() !=-1), I observered it loop works fine when the data is sent , but the next line after the loop is not executable , I feel its still looking for the data in the stream but there is no ata. If I close the Server connection , then my client will execute the next line followed to the loop.

I am not sure where I am going wrong?

this.in = socket.getInputStream();

int dataInt = this.in.read();

    while(dataInt != -1){
        System.out.print(","+i+"--"+dataInt);
        i++;
        dataInt = this.in.read();
    }

System.out.print("End Of loop");

I get the output as:-

,1--0,2--62,3--96,4--131,5--142,6--1,7--133,8--2,9--16,10--48,11--56,12--1,13--0,14--14,15--128,16--0,17--0,18--0,19--48,20--0,21--0,22--0,23--0,24--0,25--1,26--0,27--0,28--38,29--114,30--23,31--20,32--70,33--3,34--20,35--1,36--133,37--48,38--51,39--49,40--52,41--49,42--55,43--49,44--52,45--52,46--54,47--55,48--50,49--51,50--52,51--48,52--53,53--56,54--51,55--48,56--48,57--57,58--57,59--57,60--57,61--57,62--57,63--57,64--56

But no output for :- End Of loop

Please guide how shall I close the loop?

Looking forward for you response. Thanking you all in advance.

© Stack Overflow or respective owner

Related posts about java

Related posts about sockets