我是安卓的初学者,我正在努力InputStream
读取数据。我使用 while 循环连续读取数据。但是在使用断点进行调试时,while 循环只运行一次。请帮助我。
我的可运行类是
static class Connect implements Runnable {
@Override
public void run() {
try {
socket = new Socket("192.168.43.79", 23);
outputStream = socket.getOutputStream();
inputStream = socket.getInputStream();
connected = true;
while(connected) {
try {
p = IOUtils.toString(inputStream, "ASCII");
}
catch (IOException e){
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
catch (Throwable e){
e.printStackTrace();
}
}
}
仅通过查看您的代码,我可以猜测IOUtils.toString(..)正在抛出IOException,并且该异常导致您的程序退出while循环,而是跳转到catch(..)块。
如果你能给出e.printStackTrace()的输出,那将是非常有帮助的。没有它,我不能告诉你更多。
connected
是一个非局部变量,因此任何定义可见的代码都可以更改它。
如果确实没有抛出异常,那么一定有其他代码更改该变量。
您的代码片段甚至不包含变量的声明(因此它不会按原样编译)。但我猜更改变量的代码与您显示的内容相去甚远。为了确定问题,我建议您搜索connected
的定义并查看其所有用途。