我正在通过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/

10-10 06:07