2013-02-22 16 views
5

Uzak bir dosyayı doğrudan bir dosya nesnesine nasıl akıtılacağını hızlı bir şekilde bilen biri varsa, dosyayı geçici olarak bir bilgisayara depolamanız gerekmediği için büyük ölçüde takdir edilecektir! Şimdiye kadar (net.schmizz.sshj kullanarak) aşağıdaki gibi bir uzak ios-aygıttan dosyayı kopyalamak:Uzaktaki dosyaları dosya nesnelerine aktarma

SSHClient ssh = new SSHClient(); 
ssh.addHostKeyVerifier(fingerprint); 
ssh.connect(ip); 

try { 
    ssh.authPassword("username", "userpassword".toCharArray()); 
    ssh.newSCPFileTransfer().download(fileRemote, new FileSystemFile(fileLocal)); 
} catch (IOException ioe) { 
    ioe.printStackTrace(); 
} finally { 
    ssh.disconnect(); 
} 

çözümün kod ilgilenen biri varsa:

As Cevabında sözü edilen Nutlike, InMemoryDestFile'u kullanmaktan daha iyidir. OutputStream

MyInMemoryDestFile a = new StreamingInMemoryDestFile(); 

ve erişmek:

ssh.newSCPFileTransfer().download(remoteFile, a); 
a.getOutputStream().toByteArray(); 
yeni sınıfının bir örneğini oluşturmak indirmek işlemi gerçekleştirmek için yönteminde ...

class MyInMemoryDestFile extends InMemoryDestFile { 
    public ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 

    @Override 
    public ByteArrayOutputStream getOutputStream() throws IOException { 
     return this.outputStream; 
    } 
} 

: Yani şu sınıf oluşturmak

Saygılarımızla

cevap

İlgili konular