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