2014-01-19 3 views
2

읽을 내용이있는 경우 DataInputStream에 묻는 방법이 있습니까? .readByte()는 단지 바이트 기다리고, 그것을 중단됩니다 읽을 :(아니면 내가 항상 만들기 위해, 더미 바이트를 전송해야 할 수 있는지 항상 뭔가를보고DataInputStream에 내용이 있는지 확인하십시오.

답변

4
dis.available(); 

반환 : 견적을 블록하지 않고 입력 스트림로부터 읽어 들일 수가있는 (또는 스킵 할 수있다) 바이트의 수.

이것은 당신도. 당신은 더 많은 정보를 얻을 수 있습니다 여기에 답을 확인해?

을 찾는 것입니다. "available" of DataInputStream from Socket

+0

전화 그것에서 다음 읽지 않은 데이터를 읽고하려고한다 "읽을 수있는 바이트의 수를 리턴합니다"문서에 따라

public int available() throws IOException 

봐. 정말로 아무것도 반환하지 않으면. 그 빈 및 available(); 그것은 시끄럽게 작동합니다. –

+1

당신이 링크를 클릭하면 꽤 좋은 아이디어를 얻을 수 있습니다. 루프에서 그것을하는 법도 있습니다. 또한 어떤 경우에는 0을 반환하는 이유를 설명하는 답도 있습니다. * dis *에 대한 문서도 확인하십시오. –

+0

이제 PushBackInputStream과 dis를 사용하면 pbs가 사용 가능합니다. dis for rest;) – Pwnie2012

1

그것은

그래서 당신이 다음 dis.available()

관련 문제