Ola galera, bom tenho o script abaixo que remove alguns blocos de textos pré-definidos, porem preciso também de remover as linha vazias.
Para executa-lo faço assim: java ProcessadorTexto arquivoOriginal.txt ArquivoNovoManipulado.txt
Encontrei aqui no forum e em outros lugares várias formas de fazer isso, porem não consegui adaptar a nenhum a este código.
Desde já muito obrigado.
import java.util.*;
import java.io.*;
//import java.poi.*;
public class ProcessadorTexto {
public static void main(String[] args) {
// verifica se há dois argumentos
if (args.length != 2) {
falhar("Uso: java ProcessadorTexto ARQUIVO NOVO_ARQUIVO");
}
// verifica se o arquivo de entrada realmente existe
File entrada = new File(args[0]);
if (!entrada.exists()) {
falhar("Arquivo de entrada não encontrado");
}
// verifica se o arquivo de saída não existe ainda
File saida = new File(args[1]);
if (saida.exists()) {
falhar("Arquivo de saída já existe");
}
// verifica se a pasta onde o arquivo será salvo já existe
// e, se não existir ainda, cria
File pastaSaida = saida.getParentFile();
if (pastaSaida != null && !pastaSaida.mkdirs()) {
falhar("Não foi possível criar diretório onde será salvo o arquivo");
}
// cria o arquivo de saída vazio
try {
if (!saida.createNewFile()) {
falhar("Não foi possível criar o arquivo de saída");
}
} catch (IOException e) {
falhar("Não foi possível criar o arquivo de saída: " + e.getMessage());
}
// cria o Scanner para ler e o PrintWriter para escrever
Scanner sc = null;
PrintWriter pw = null;
try {
sc = new Scanner(entrada);
pw = new PrintWriter(saida);
// enquanto houverem mais linhas na entrada
while (sc.hasNextLine()) {
String linha = sc.nextLine();
// escreve na saída o valor alterado
linha = linha.replaceAll("%!", "");
linha = linha.replaceAll("%%DocumentMedia: papel1 595 842 75 white normal", "");
linha = linha.replaceAll("%%+papel2 595 842 75 blue azul", "");
pw.println(linha);
}
// informa que tudo correu bem
System.out.println("Arquivo processado com sucesso!");
} catch (FileNotFoundException e) {
// como verificamos se os arquivos existiam antes, isso não deve ocorrer
// mesmo assim é boa prática capturar e tratar essa exceção
System.err.println("Não foi possível econtrar arquivo: " + e.getMessage());
} finally {
// para finalizar, fechamos os recursos que usamos
if (sc != null) {
sc.close();
}
if (pw != null) {
pw.flush();
pw.close();
}
}
}
/**
* Esse método mostra a mensagem de erro e encerra a JVM com um código de
* erro: <code>System.exit(1)</code>.
*/
private static void falhar(String mensagem) {
System.err.println(mensagem);
System.exit(1);
}
}