Jogar Valores PrintStream em uma String ou em um arquivo txt

3 respostas
java
J

Estou desenvolvendo uma aplicação SSH e quando recebo a resposta do servidor consigo jogá-la no console do Netbeans , mas eu necessitária jogar esta resposta em uma String ou em um arquivo .txt, parecia algo fácil, mas já fiz várias tentativas e não logrei êxito, poderiam me ajudar por favor?

Channel channel=session.openChannel("shell");
channel.setOutputStream(System.out);
String fileName = "C:\\\\\\\\sshTeste\\\\\\\\ArquivoText.txt";
PrintStream shellStream = new PrintStream(channel.getOutputStream()); 
channel.connect(); 
for(String command: commands) {
//Jogando na console, preciso que jogue no arquivo ou em uma variável
shellStream.println(command); 
shellStream.flush();
}

3 Respostas

Rodrigo_Void

Ola,
em qual linha que vc está jogando no console?
se vc tem o valor e pode manipulá-lo a ponto de conseguir jogar no console, bom, vc já deve ter isso em uma variável String e pode fazer oq quiser com isso. É só pesquisar como grava em arquivo.

J
Olá Sr. Rodrigo muito grato pela atenção; Estou jogando nas linhas abaixo:

//Jogando na console, preciso que jogue no arquivo ou em uma variável

for(String command: commands) {

//Jogando na console, preciso que jogue no arquivo ou em uma variável

shellStream.println(command);

shellStream.flush();

}

Te juro que  varri a internet procurando uma solução, creio que o problema seja por que não estou conseguindo manipular o objeto PrintStream que é quem recebe as informações do servidor, veja a linha abaixo

PrintStream shellStream = new PrintStream(channel.getOutputStream());

Ou seja na hora de manipular o for de String, quando tento jogar direto no arquivo aparece um monte de endereçamento de memória
Rodrigo_Void

vc teria que mudar:
channel.setOutputStream(System.out);
tirando o System.out e colocando outro PrintStream que vc possa ler:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
 PrintStream ps = new PrintStream(baos);

Ai depois pra pegar o valor dele:
String content = new String(baos.toByteArray(), StandardCharsets.UTF_8);

Criado 1 de junho de 2017
Ultima resposta 8 de jun. de 2017
Respostas 3
Participantes 2