【问题标题】:How to check if a stream from an SmbFile is ready to be read?如何检查来自 SmbFile 的流是否可以读取?
【发布时间】:2018-02-09 14:38:53
【问题描述】:

这段代码相当于什么:

    FileReader reader = null;
    try
    {
        reader = new FileReader( file);
        return reader.ready();
    }
    catch( IOException ex)
    {
        return false;
    }

对于SmbFile ?我试过了:

    BufferedReader reader = null;
    try
    {
        SmbFileInputStream fstream = new SmbFileInputStream( file);
        reader = new BufferedReader( new InputStreamReader( fstream));
        return reader.ready();
    }
    catch( IOException ex)
    {
        return false;
    }

但结果我总是得到“假”。

【问题讨论】:

    标签: java java-io jcifs


    【解决方案1】:

    根据文档看起来不能保证这个标志确保它不能被读取,Note that returning false does not guarantee that the next read will block.

    您可以尝试这种方式来避免空值,

    String line;
    while((line = br.readLine()) != null) {
      System.out.println(line);
    }
    

    你也可以看看这个帖子,bufferedreader-not-stating-ready-when-it-should

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2013-06-23
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多