如何使用Java远程写入文件

时间:2019-03-13 09:21:54

标签: java file jsch

我正在尝试在连接到服务器的远程服务器上创建文件,而现在我正在尝试在服务器上创建文件。

这是我的方法,它连接到服务器并转到写文件方法,这是我正在努力解决的问题:

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();
        }

我正在尝试设置文件,但是找不到可以指示服务器这是远程文件位置的位置。

2 个答案:

答案 0 :(得分:1)

请使用以下方法将File粘贴到服务器上。

channel.put(YOUR_FILE, SFTPLOCATION);

另外, 使用BufferedWriterFile中写入数据,完成后,在finally中关闭文件,如下所示。

bufferedWriter.flush()

如果您仍然遇到此问题,请告诉我。

答案 1 :(得分:-1)

我找到了一种解决方法来完成此任务,我使用linux命令来创建和填充文件,如下所示:

回显“要插入的字符串”> FILE_PATH,我将其转换为java命令。