Java JSch BufferedReader未返回Null

Java JSch BufferedReader未返回Null,java,jsch,Java,Jsch,我正在编写一个SFTP客户端,该客户端正在从SFTP服务器下载消息,但引发了一个IO异常。当我调试代码时,我看到代码正在读取每一行并在控制台中很好地显示它们。在最后一行,它应该是null或一个额外的换行符,代码应该退出while,但我认为它不是,这就是IO异常的来源 Vector<ChannelSftp.LsEntry> list = ((ChannelSftp) channel).ls("*.*"); System.out.printf("Found %d files in dir

我正在编写一个SFTP客户端,该客户端正在从SFTP服务器下载消息,但引发了一个IO异常。当我调试代码时,我看到代码正在读取每一行并在控制台中很好地显示它们。在最后一行,它应该是null或一个额外的换行符,代码应该退出while,但我认为它不是,这就是IO异常的来源

Vector<ChannelSftp.LsEntry> list = ((ChannelSftp) channel).ls("*.*");
System.out.printf("Found %d files in dir %s%n", list.size(), "/Export_ADT/TEST");

for (ChannelSftp.LsEntry file : list) {
    if (file.getAttrs().isDir()) {
        continue;
    }

    System.out.printf("Reading file : %s%n", file.getFilename());
    BufferedReader bis = new BufferedReader(new InputStreamReader(sftpChannel.get(file.getFilename())));
    String line = null;
    while ((line = bis.readLine()) != null) {
        System.out.println(line);
    }
    bis.close();
}

channel.disconnect();
session.disconnect();
向量列表=((ChannelSftp)channel.ls(“*”); System.out.printf(“在目录%s%n,list.size(),”/Export_ADT/TEST中找到%d个文件”); 对于(ChannelSftp.LsEntry文件:列表){ if(文件.getAttrs().isDir()){ 继续; } System.out.printf(“读取文件:%s%n”,file.getFilename()); BufferedReader bis=新的BufferedReader(新的InputStreamReader(sftpChannel.get(file.getFilename())); 字符串行=null; 而((line=bis.readLine())!=null){ 系统输出打印项次(行); } 二、关闭(); } 通道断开(); session.disconnect();
请检查IOException将出现在哪一行。它真的来自于
而((line=bis.readLine())!=null){
?它来自于while((line=bis.readLine())!=null),它在控制台中打印最后一行。