Ola galera esse é meu primeiro post, espero ta fazendo no local certo.
Sou totalmente iniciante em Java e estou com um problema aqui.
Tenho que criar um programa em java para executar regras de iptables, até o momento tava tudo mil maravilhas, vou da um exemplo que esta funcionando!
run.exec("iptables -A INPUT -j DROP");
run.exec("iptables -A OUTPUT -j DROP");
run.exec("iptables -A FORWARD -j DROP");
System.out.println("Drop geral realizado com sucesso!");
Agora tenho que salvar um arquivo em .txt contendo as regras, o comando é:
run.exec("iptables-save > regras.txt");
No terminal funciona, porém através do programa não!
Alguem pode me ajudar??
Realmente não sei porque todos funcionam menos esse…já que no terminal vai direitinho!
Caso ninguém saiba o porque, eu tenho uma outra forma que estou tentando fazer.
Nesse código peguei o resultado do processo e armazenei em uma String chamada saida, até ai funcionou, mas nao sei como posso pegar essa String saida e criar um arquivo txt a partir dela
Process proc2 = run.exec("iptables-save");
//processo para pegar, tratar e imprimir a saida do comando acima
{
InputStream inputStream = proc2.getInputStream();
String saida = "";
{
int n;
while ((n = inputStream.read()) != -1) {
saida += (char)n; }}
System.out.println(saida);}
O código abaixo salva o conteúdo de uma String em um arquivo txt:
package criarArquivo;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class ExemploCriarArquivo {
public static void main(String[] args) {
File file = null;
FileWriter writer = null;
try {
String someStuff = "Some stuff";
file = new File("/home/fulano/someStuff.txt");
file.createNewFile();
writer = new FileWriter(file);
writer.write(someStuff);
}
catch (IOException e) {
e.printStackTrace();
}
finally{
if(!(writer == null)){
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

vlww parceiro, funcionou direitinho aqui!