我正在通过apache.commons.FtpClient读取文件。
这可以在99.9%的时间内正常工作,但有时它会死在read()方法中。
InputStream inStream = ftp.retrieveFileStream(path + file.getName());
String fileAsString = "";
if(inStream == null){
return;
}
while((c = inStream.read()) != -1){ //this is where the code sometimes just hangs
fileAsString += Character.valueOf((char)c);
}
我的问题是,防止这种无限期锁定系统的最可靠方法是什么。我应该在单独的线程中设置计时器吗?还是有一种更简单的方法?
最佳答案
只需快速浏览一下文档,即可了解...
while (inStream.available() > 0 && (c = inStream.read()) != -1)
在实际阅读之前,似乎会仔细检查您可以无阻塞地阅读。我不确定这一点。
关于java - 监视InputStream的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/596940/