Я столкнулся с проблемой при передаче файла с использованием JSCH в Java.Данные в файле повреждены, и это происходит периодически.Я имею в виду, что иногда файл загружается правильно, и в большинстве случаев мы замечали, что данные повреждены, когда размер файла превышает 5 МБ.
Программа ведет себя по-разному в разных сценариях.
Windows-10 : Программа прекрасно работает без проблем для файлов всех размеров.
Unix : Программа отлично работает для файлов размером менее 2 МБ.Но для файлов, размер которых превышает 2 МБ, иногда файл может быть загружен правильно, но в большинстве случаев мы видим, что данные повреждены.
Я все еще не понимаю, что вызывает повреждение данных?Я не думаю, что код имеет проблему, так как программа отлично работает в среде Windows, а иногда и в среде Unix.
Есть ли проблемы с тем, как программа читает данные и записывает на удаленный сервер или любой другойДругая вещь, которую я здесь скучаю?Пожалуйста помоги.
public boolean putFile(String report, String user, String password, String location,
String folder) throws Exception {
boolean status=true;
JSch shell = new JSch();
Session session = null;
session = shell.getSession(user, location, 22);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
Channel channel = null;
channel = session.openChannel("shell");
channel.setInputStream(null);
channel.setOutputStream(null);
channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.cd(folder);
File outputFile = new File(report);
FileInputStream fileInputStream = new FileInputStream(outputFile);
sftp.put(fileInputStream, outputFile.getName());
session.disconnect();
return status;
}