Olá mestres,
Estou com um problemão…
Numa parte do meu código eu tenho que concatenar vários arquivos, poderia fazer com um FileWriter, mas com o comando TYPE do cmd fica muito mais rápido.
Desenvolvi todo o sistema e testei com uma amostra de uns 50MB de arquivos e funcionou, então entreguei o sistema.
Mas em produção, com uns 1GB-2GB de arquivos ele travou…ficou a madrugada toda e o arquivo concatenado não sai de 28KB, e nem retorna pro código java…
Printei o comando que estou dando e joguei no prompt, exatamente como está, e não levou nem 10 min!!!
Estranho porque eu achei que o java simplesmente chamava o cmd e aguardava retorno, então porque funciona no prompt e não funciona chamando pelo java?
Segue o código:
StartTratadorValidosDetraf.getLogger().info("Concatenando arquivos TCO");
String comando = "cmd /c TYPE \""
+ StartTratadorValidosDetraf.getOutput().getAbsolutePath() + "\\*.TCO\" > "
+ "\"" + StartTratadorValidosDetraf.getOutput().getAbsolutePath() + "\\validos_detraf_tco.txt\"";
System.out.println(comando);
Process procTco = Runtime.getRuntime().exec(comando);
procTco.waitFor();
if(procTco.exitValue() != 0) {
StartTratadorValidosDetraf.getLogger().fatal("Ocorreu um erro ao concatenar os arquivos TCO");
System.exit(3);
}
No System.out.println() imprime: cmd /c TYPE "D:\Programacao\BV-R2\detraf\validos\work*.TCO" > "D:\Programacao\BV-R2\detraf\validos\work\validos_detraf_tco.txt"
Segura essa!