Как написать файл удаленно с помощью Java - PullRequest
1 голос
/ 13 марта 2019

Я пытаюсь создать файл на удаленном сервере, который я подключил к серверу, и сейчас пытаюсь создать файл на сервере.

Это мой метод подключения к серверу.метод записи файла, с которым я сейчас борюсь:

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 ]

1 голос
/ 13 марта 2019

Пожалуйста, используйте следующий метод для вставки File на сервере.

channel.put(YOUR_FILE, SFTPLOCATION);

Также используйте BufferedWriter для записи данных в File и, как только вы закончите, в finallyзакройте файл, как показано ниже.

bufferedWriter.flush()

Дайте мне знать, если проблема не устранена.

0 голосов
/ 13 марта 2019

Я нашел обходной путь для выполнения этой задачи, я использовал команды linux для создания и заполнения моего файла следующим образом:

echo "строка для вставки"> FILE_PATH, и я преобразовал ее в команду java.

...