Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java远程编写文件_Java_File_Jsch - Fatal编程技术网

如何使用java远程编写文件

如何使用java远程编写文件,java,file,jsch,Java,File,Jsch,我正在尝试在连接到服务器的远程服务器上创建文件,现在正在尝试在服务器上创建文件 这是我连接到服务器并转到写入文件方法的方法,这是我正在努力解决的问题: public static void writeFileRemotley(Node node,long durationInSec, String data, java.io.File dest) throws Exception { if (!dest.exists()) {

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

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

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

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

请使用以下方法将
文件粘贴到服务器上

channel.put(YOUR_FILE, SFTPLOCATION);
而且, 使用
BufferedWriter
文件中写入数据
完成后,在
中最后关闭文件,如下所示

bufferedWriter.flush()

如果您仍然面临此问题,请告诉我。

请使用以下方法将
文件粘贴到服务器上

channel.put(YOUR_FILE, SFTPLOCATION);
而且, 使用
BufferedWriter
文件中写入数据
完成后,在
中最后关闭文件,如下所示

bufferedWriter.flush()

如果您仍然面临此问题,请告诉我。

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


echo“string to insert”>文件路径,我将其转换为java命令

我找到了一个解决方法来完成这项任务,我使用linux命令创建并填充我的文件,如下所示:


echo“string to insert”>文件路径,我将其转换为java命令

我不确定这是否可行。我认为不应该,这也意味着严重的安全漏洞。“让我们在ISP的服务器上创建一个包含病毒的文件,这会很有趣”这类问题在这里浮现。不确定这是否可能。我认为不应该,这也意味着严重的安全漏洞。“让我们在ISP的服务器上创建一个包含病毒的文件,这会很有趣”这类问题在这里浮现。感谢您的快速响应,如果文件不存在,我希望能够远程创建该文件并将数据写入其中。因此,您现在可以在我使用channel.put(文件,数据)时成功创建文件我得到了一个错误,因为我的第一个参数是io.java.File,第一个参数是put,希望得到字符串变量。4:java.io.FileNotFoundException:/usr/share/indeni services/config/environment(没有这样的文件或目录)好的,我明白你的意思了。执行如下操作1.)创建字符串的文件名(如:-您的\u文件\u流),然后执行IO操作2.)IO操作完成后3.)关闭打开的资源4.)现在编写以下代码文件FILENAME=新文件(您的\u文件\u流)@prashant您的文件操作是什么意思?感谢您的快速响应,如果文件不存在,我希望能够远程创建该文件并将数据写入其中。因此,您现在可以在我使用channel.put(文件,数据)时成功创建文件我得到了一个错误,因为我的第一个参数是io.java.File,第一个参数是put,希望得到字符串变量。4:java.io.FileNotFoundException:/usr/share/indeni services/config/environment(没有这样的文件或目录)好的,我明白你的意思了。执行如下操作1.)创建字符串的文件名(如:-您的\u文件\u流),然后执行IO操作2.)IO操作完成后3.)关闭打开的资源4.)现在编写以下代码文件FILENAME=新文件(您的\u文件\u流)@prashant你的文件操作是什么意思?你为什么这么做?链接中有很好的解决方案,我已经为您提供了。你为什么要使用这样的黑客?我也可以使用你提供的链接中的代码,但只是为了我理解为什么我建议的解决方案不好?性能方面?干净的代码?你为什么这么做?链接中有很好的解决方案,我已经为您提供了。你为什么要使用这样的黑客?我也可以使用你提供的链接中的代码,但只是为了我理解为什么我建议的解决方案不好?性能方面?干净的代码?