Galera como como eu exportaria a saida do programa para arquivo txt ?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args) throws IOException {
String line;
Process saida;
//executa o processo e armazena a referência em 'Saida'
saida = Runtime.getRuntime().exec("cmd /c ipconfig");
//pega o retorno do processo
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(saida.getInputStream()));
//printa o retorno
while ((line = stdInput.readLine()) != null) {
System.out.println(line);
}
stdInput.close();
}
}
eu conseguir fazer de uma forma mano mas ele não cria um arquivo e sim sobrescrever em um já existente! E no caso eu queria criar um novo arquivo toda vez que eu executar o código.
public class test {
public static void main(String[] args) throws IOException {
Path path = Paths.get("ArquivoFinal.txt");
String line;
Process saida;
//executa o processo e armazena a referência em 'Saida'
saida = Runtime.getRuntime().exec("cmd /c type arquivo1.txt");
//pega o retorno do processo
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(saida.getInputStream()));
//printa o retorno
while ((line = stdInput.readLine()) != null) {
Files.write(path, line.getBytes(), StandardOpenOption.APPEND);
}
System.out.println("Arquivo escrito");
stdInput.close();
}
Bom utilizando o exemplo do meu amigo @LostSoldier
seria dessa forma:
public static void main(String[] args){
String line;
Process saida;
//executa o processo e armazena a referência em 'Saida'
saida = Runtime.getRuntime().exec("cmd /c ipconfig");
//pega o retorno do processo
BufferedReader stdInput = new BufferedReader(new InputStreamReader(saida.getInputStream()));
//cria um arquivo, vc passa o diretorio, caso nao passar o diretorio ele cria na pasta do projeto
File arquivo = new File("testando.txt");
//classe responsável pela a escrita no arquivo
PrintWriter escrever = new PrintWriter(arquivo);
//printa o retorno
while ((line = stdInput.readLine()) != null) {
//escreve no arquivo pulando uma linha
escrever.println(line);
}
//fecha
escrever.flush();
escrever.close();
stdInput.close();
}
Galera eu conseguir dessa forma, cria o arquivo certinho , agora não sei por mas ele não ler e consequentemente não escreve no arquivo todo o contéudo , nas ultimas linhas ele ignorar .
public static void main(String[] args) throws IOException {
String line;
Process saida;
Path path = Paths.get("124.txt");
try {
Files.createFile(path);
} catch (Exception e) {
System.err.println(e);
}
//executa o processo e armazena a referência em 'Saida'
saida = Runtime.getRuntime().exec("cmd /c ipconfig");
//pega o retorno do processo
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(saida.getInputStream()));
//printa o retorno
while ((line = stdInput.readLine()) != null) {
Files.write(path, line.getBytes(), StandardOpenOption.APPEND);
}
JOptionPane.showMessageDialog(null, "Arquivo foi escrito");
stdInput.close();
}
Bom mano se é algo só para escrever não é melhor utiliza só o PrintWrite?
ex:
PrintWrite escrever = new PrintWrite(new File("arquivo.txt"));
//escreve pulando linha
escrever.println("escrevendo alguma coisa");
//escreve sem pular a linha
escrever.write("escreve sem pular linha, tudo junto");
escrever.flush();
escrever.close();
ou então usando o bufferedWrite, cujo essa nova API retorna um desse tipo tbm:
ex:
Verdade , mas no caso eu queria mostrar o conteúdo retornado do processo e ao mesmo tempo salva-lo , no caso eu só ia usar o processo no caso o cmd para ler o arquivo para o meu programa e retorna o resultado , ai no meu programa eu iria mostrar a leitura no caso o conteúdo de tal e salva-lo em algum lugar, mas acontece que quando eu recebo o retorno ele não vem completo e consequentemente não escreve todo o conteudo .
Tipo arquivos maiores , ele não retorna todo o conteúdo do arquivo e consequentemente ele não salva todo o conteúdo, fiz alguns testes aqui e sempre dá no mesmo , arquivos menos ele captura tudo .
O arquivo aqui que eu utilizo são dois de 9 mb , ou seja o arquivo final deveria ter 18mb certo ?! Só quando gera o arquivo final o tamanho é menor logo ele não conseguiu processar tudo . Faz um teste copia algo em um arquivo varias vezes e faz o teste.
Então deixa eu ver se entendi, vc que copiar os conteúdos de dois arquivos diferentes e colocar em apenas 1 arquivo?
Bom, pela lógica q já montei aqui daria, certo vou fazer um teste então! se for isso ai que vc falou