1.用JAVA语言
2.需要用SSH连接LINUX,已知: 用户名 密码 IP 文件路径及文件名3.需求:判断文件是否存在,存在的话 取得文件,并读取CSV文件内容求助各位了,在线等!

解决方案 »

  1.   

    http://www.jcraft.com/jsch/开源的很多,自己看看吧。
      

  2.   

    只用 SSH连接        public void doProc() {
                // connect & login
                Connection conn = new Connection(hostname);
                try {
                    ConnectionInfo info = conn.connect();            boolean result = conn.authenticateWithPassword(userid, password);            if (result) {
                    // exec "ls -l"
                    Session session = conn.openSession();
                    session.execCommand("ls -l");
                    System.out.println(streamToString(session.getStdout()));
                    System.out.println(streamToString(session.getStderr()));
                    System.out.println(session.getExitStatus());
                    
                    session.close();
                }
                // exec "ls -l"
                Session session = conn.openSession();
                session.execCommand("find /root/Desktop/Screenshot.png -type f");
                
                System.out.println(streamToString(session.getStdout()));
                System.out.println(streamToString(session.getStderr()));
                System.out.println(session.getExitStatus());
                
                
                session.close();
                // exec "ls -l"
                Session session2 = conn.openSession();
                session2.execCommand("find /root/Desktop/Screenshot.png2 -type f");
                
                System.out.println(streamToString(session2.getStdout()));
                System.out.println(streamToString(session2.getStderr()));
                System.out.println(session2.getExitStatus());
                
                
                session.close();
                
                conn.close();
                } catch (IOException e) {
                    // TODO 自動生成された catch ブロック
                    System.out.println(e);
                    e.printStackTrace();
                }
    //         // sftp remotely
    //            ChannelSftp channel=(ChannelSftp)session.openChannel("sftp");
    //            channel.connect();
    //
    //         // lstat
    //            try {
    //                SftpATTRS stat = channel.lstat("index.html");
    //                System.out.println("---- lstat");
    //                System.out.println(stat);
    //                System.out.println(stat.getSize());
    //            } catch (SftpException ex) { 
    //                // ファイルが存在しないとき
    //                ex.printStackTrace();
    //            }        }这种可以实现吧
      

  3.   

    为什么上面的文件 执行 find /root/Desktop/Screenshot.png2 -type f 命令好用
    而用 scp C:\\temp\\00001.tsv [email protected]:/usr/gms/2010/001.tsv这个命令就不好用呢
    是不是我 本地文件写的路径不正确呢 C:\\temp\\00001.tsv 这样写不正确吗“?
      

  4.   

    如此类似也 
    import java.net.*; 
    import java.io.*; public class FtpConn 

    public static void main(String [] args)throws Exception 

    URL u=new URL("ftp://ppmm:1111@localhost/read1.txt"); 
    URLConnection urlconn=u.openConnection(); 
    BufferedReader br=new BufferedReader(new InputStreamReader(urlconn.getInputStream())); 
    String line; 
    while(null!=(line=br.readLine())) 

    System.out.println(line); 



    ftp://ppmm:1111@localhost/read1.txt 
    其中localhost是ftp server地址 
    ppmm是用户名 
    1111是密码 
     匿名用户不用写用户名和密码如 
    ftp://localhost/read1.txt 
    这样的方式可以访问LINUX的系统吗 来读取服务器上的文件内容?