Java
Chilkat2 Java
SFTP Read Text File to String
See more SFTP Examples
Demonstrates how to download a text file from an SSH server directly into a string variable.Chilkat Java Downloads
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.SFtp;
public class ChilkatExample {
public static void main(String[] args) {
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
SFtp sftp = new SFtp();
// Set some timeouts, in milliseconds:
sftp.setConnectTimeoutMs(5000);
sftp.setIdleTimeoutMs(15000);
// Connect to the SSH server.
// The standard SSH port = 22
// The hostname may be a hostname or IP address.
String hostname = "sftp.example.com";
int port = 22;
try {
sftp.connect(hostname, port);
// Authenticate with the SSH server. Chilkat SFTP supports
// both password-based authenication as well as public-key
// authentication. This example uses password authenication.
sftp.authenticatePw("myLogin", "myPassword");
// After authenticating, the SFTP subsystem must be initialized:
sftp.initializeSftp();
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Open a file on the server:
String handle = "";
try {
handle = sftp.openFile("hamlet.xml", "readOnly", "openExisting");
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Get the total size of this file (in bytes)
boolean bFollowLinks = false;
boolean bIsHandle = true;
// bFollowLinks is ignored because we are passing a handle
// and not a remote filename.
// There are alternative methods for handling file sizes
// greater than 32-bit. (See the reference documentation.)
int numBytes = sftp.getFileSize32(handle, bFollowLinks, bIsHandle);
if (numBytes < 0) {
System.out.println(sftp.getLastErrorText());
return;
}
// The charset indicates the character encoding of the text
// file on the SSH server. Setting the charset correctly
// allows the Chilkat SFTP component to correctly interpret
// the bytes that represent the characters.
String charset = "ansi";
String fileContents = "";
try {
fileContents = sftp.readFileText(handle, numBytes, charset);
System.out.println("Received file:");
System.out.println(fileContents);
// Close the file.
sftp.closeHandle(handle);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
System.out.println("Success.");
}
}