如何在远程计算机中打开路径并使用java在该路径中写入文件

如何在远程计算机中打开路径并使用java在该路径中写入文件,java,sftp,jsch,Java,Sftp,Jsch,根据用户输入数据和数据库数据,我需要创建一个文件并将其放置在远程计算机中。所以我能想到的更好的方法是连接到远程机器并直接在那里写入文件。到目前为止,我使用JSch连接到远程机器。但我不知道如何在特定位置root/usr/path/写入文件,我需要在该路径中写入并放置文件ddr12213124.NEW或ddr12213124.CSV 我已附上连接到远程机器的代码 package com.trial.classes; import java.io.InputStream; import com.

根据用户输入数据和数据库数据,我需要创建一个文件并将其放置在远程计算机中。所以我能想到的更好的方法是连接到远程机器并直接在那里写入文件。到目前为止,我使用JSch连接到远程机器。但我不知道如何在特定位置root/usr/path/写入文件,我需要在该路径中写入并放置文件ddr12213124.NEW或ddr12213124.CSV

我已附上连接到远程机器的代码

package com.trial.classes;

import java.io.InputStream;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
import com.jcraft.jsch.UserInfo;

public class transferFile {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JSch jsch = new JSch();
        Session session = null;
        try {
            session = jsch.getSession("ragesh", "10.0.0.1", 22);
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword("password");
            session.connect();
            System.out.println("Connected to session successfully");
            Channel channel = session.openChannel("sftp");
            channel.connect();
            System.out.println("Connected to Channel successfully");
            ChannelSftp sftpChannel = (ChannelSftp) channel;

            sftpChannel.exit();
            session.disconnect();
        } catch (JSchException e) {
            e.printStackTrace();  
        }
    }
}
现在,我想创建一个文件ddr12213124.NEW或ddr12213124.CSV,并将其放置在路径root/usr/path中/

我早些时候问过这个问题,但它被标记为重复,我被要求提出一个新问题。这不是重复的。到目前为止,在先前发布的链接中还没有找到合适的答案

您可以使用方法将文件写入远程目录。put方法有几种风格,您可以根据需要使用任何一种。以下是将文件从本地系统写入远程系统的示例代码:

    JSch jsch = new JSch();
    Session session = null;
    try {
        session = jsch.getSession("ragesh", "10.0.0.1", 22);
        session.setConfig("StrictHostKeyChecking", "no");
        session.setPassword("password");
        session.connect();
        System.out.println("Connected to session successfully");
        Channel channel = session.openChannel("sftp");
        channel.connect();
        System.out.println("Connected to Channel successfully");
        ChannelSftp sftpChannel = (ChannelSftp) channel;

        // this will read file with the name test.txt and write to remote directory
        sftpChannel.cd("/root/usr/path");
        File f = new File("test.txt");
        sftpChannel.put(new FileInputStream(f), f.getName()); // here you can also change the target file name by replacing f.getName() with your choice of name

        sftpChannel.exit();
        session.disconnect();
    } catch (JSchException e) {
        e.printStackTrace();  
    }

可能重复@Sanjeev nope。。!!我想创建一个记事本文件。。在该文件中输入少量数据,并使用特定扩展名保存它,如.NEW或.CSVhow i open a specific path。。类似选项批次中止选项确认关闭打开sftp://user@example.com/put examplefile.txt/home/user/exit这是一个winscp脚本如何让java执行此操作?为此,使用FileIO创建一个文件,然后使用ChannelSFTPUT方法放置文件我在运行VM初始化期间发生的代码错误时遇到此错误无法为对象heapRun保留足够的空间使用-XX:MaxHeapSize=256m或任何大的数字,可能还有-xmx512来删除JVM您是如何设置这些选项的?错误:无法找到或加载mainclass myClassJsch没有使用异常的内存量。在启动JVM时遇到问题超出了这个问题的范围。