我正在尝试在连接到服务器的远程服务器上创建文件,而现在我正在尝试在服务器上创建文件。
这是我的方法,它连接到服务器并转到写文件方法,这是我正在努力解决的问题:
public static void writeFileRemotley(Node node,long durationInSec, String data, java.io.File dest) throws Exception {
if (!dest.exists()) {
Credentials credentials = node.findByProtocol(NetworkProtocol.SSH);
Shell.builder().
setHost(node.ip).
setUser(credentials.user).
setPassword(credentials.password).
setTimeout(durationInSec).build().
writeRemoteFile(dest, data);
}
}
这是writeRemoteFile方法:
public void writeRemoteFile(File file, String data) throws JSchException, IOException {
ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
channel.connect(timeoutMilliSec);
FileWriter fw = new FileWriter(file);
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(channel.getOutputStream()));
wr.write(data);
wr.flush();
}
我正在尝试设置文件,但是找不到可以指示服务器这是远程文件位置的位置。
答案 0 :(得分:1)
请使用以下方法将File
粘贴到服务器上。
channel.put(YOUR_FILE, SFTPLOCATION);
另外,
使用BufferedWriter
在File
中写入数据,完成后,在finally
中关闭文件,如下所示。
bufferedWriter.flush()
如果您仍然遇到此问题,请告诉我。
答案 1 :(得分:-1)
我找到了一种解决方法来完成此任务,我使用linux命令来创建和填充文件,如下所示:
回显“要插入的字符串”> FILE_PATH,我将其转换为java命令。