2016-08-08 21 views
1

Ich muss einen String-Inhalt in einer Remote-Datei platzieren.Übertragen Sie Zeichenfolge Inhalt in eine Datei in Remote-Computer mit Java

Im Idealfall habe ich eine Datei lokal erstellt und dann diese Datei auf den entfernten Rechner übertragen.

Unten ist das Code-Snippet, das ich verwendet habe, um die Datei zu remote zu kopieren.

 ChannelSftp sftpChannel = (ChannelSftp) channel; 

     File file = new File(filePathWithName);//To read the file in local machine 
     try { 
      sftpChannel.cd(location);//Remote location 
      //Transferring the file to RemoteLocation. 
      sftpChannel.put(new FileInputStream(file), file.getName());//.(Here I don't want read a file.) //Instead I want copy a content which is in string variable, something like below two lines, to the remote location. 
      String content = "abcdefg"; 
      sftpChannel.put(content,"someFileName") 
     } catch (SftpException e) { 
      e.printStackTrace(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
     sftpChannel.exit(); 

Gibt es eine Referenz oder Dokumentation zu überwinden, um eine Datei in der lokalen Lesen der gleichen in Remote-Computer zu erstellen.

-Vielen Sie

Antwort

0

Wenn ich Ihr Problem richtig verstanden hat, dann würden Sie in der Lage sein mögen einige String-Daten an einen entfernten Rechner zu kopieren, ohne eine Datei lokal zu lesen. Wenn Sie die javadoc betrachten, akzeptiert putInputStream. So tun Sie:

InputStream stream = new ByteArrayInputStream(content.getBytes()); 
sftpChannel.put(stream, "name.txt"); 

Beachten Sie, dass Sie können auch put(String dst) wo Sie auf die OutputStream schreiben kann, der zurückgegeben wird. Aber das habe ich nicht gezeigt.