我最近开始使用Java开发应用程序。该应用程序的目的是以excel文件的形式处理一些api和输出信息。 JAR位于服务器上,并在用户在客户端(本地计算机)上发送请求时运行。
该应用程序成功在服务器位置生成了excel文件。我尝试使用JAVA ChannelSftp方法从服务器下载到我的本地计算机(客户端位置),但是它在JAR位置(即服务器位置)而不是客户端位置创建了一个新文件。 代码段如下所示,这将在JAR位置创建一个文件,文件名为C:\ Users \ PFName-CFName_Co.xlsx
String SerDir=System.getProperty("user.home") + "/Desktop/";
String LocDir="C:\Users\";
String SerFC = SerDir+PFName+"-"+CFName+"_Co.xlsx";
String LocFC = LocDir+PFName+"-"+CFName+"_Cos.xlsx";
Session session = null;
ChannelSftp sftpChannel=null;
Channel channel = null;
JSch jsch = new JSch();
try
{
session = jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking","no");
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
sftpChannel =(ChannelSftp) channel;
sftpChannel.cd(SerDir);
File file = new File(SerFC);
byte[] buffer = new byte[1024];
BufferedInputStream bis;
bis = new BufferedInputStream(sftpChannel.get(file.getName()));
File newFile = new File(LocDir + file.getName());
// Download file
OutputStream os = new FileOutputStream(newFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
int readCount;
while ((readCount = bis.read(buffer)) > 0) {
bos.write(buffer, 0, readCount);
}
bis.close();
bos.close();
请检查并帮助我如何将文件下载到客户端位置(C盘中的任何位置)