在我的应用程序中我有客户端和服务器程序,每当服务器从客户端获得连接时,服务器都会将所有可用的id从MySQL表发送到客户端,为此我使用while循环来读取文件的内容。
我尝试了以下代码:
while((a=in.read())!=-1)
但我的问题是当文件中没有内容来读取while循环时没有退出,它本身就停在那里。如何退出while循环?
答案 0 :(得分:1)
in.read()
将阻止,直到可以读取数据。请参阅API文档http://docs.oracle.com/javase/6/docs/api/java/io/InputStream.html#read()
此方法阻塞,直到输入数据可用,结束 检测到流,或抛出异常。
在执行in.read()之前,您可以in.available()
检查是否有任何字节可供读取。
答案 1 :(得分:0)
您不应该使用while
循环,而应该使用线程,它将等待来自套接字的输入,当数据可用时,它将读取然后它将发送/处理输入发现在溪流中。使用while并等待(阻塞)主线程不是一个好主意