Programa que retira espaços em branco

Pessoal queria fazer um programa que abre um arquivo .txt e retira todos os espaços em branco do conteudo deste arquivo…alguem poderia me dar uma luz de como começo isso ? pq nao faço ideia^^
vlw ae

  1. Use um scanner para abrir o seu arquivo.
  2. Enquanto tiver linhas disponíveis, use o comando replace para trocar espaços por ‘’;
  3. Use um FileWriter para escrever novamente o arquivo.

Dica: Gere um segundo arquivo com o resultado. Não é uma boa política apagar o arquivo anterior. :wink:

eu tentei uma vez aki vou postar o codigo :

        FileInputStream stream = new FileInputStream("c:/dccs.txt");  
        InputStreamReader streamReader = new InputStreamReader(stream);  
        BufferedReader reader = new BufferedReader(streamReader); 
        FileWriter fileWriter = new FileWriter("c:/dccsSemEspaco.txt");
        PrintWriter writer = new PrintWriter(fileWriter);
        
        String line = null;
        while((line=reader.readLine())!=null) {
            writer.println(line.replace(" ", ""));
        }
        
        writer.close();
        fileWriter.close();
        reader.close();
        streamReader.close();
        stream.close();

porem nao funcionou para todos os espaco, ele fez algo porem nao retirou todos , pq o arquivo esta menor

poxa axo que descobri o porque , na verdade existem tambem tabulaçoes que dever ser removidas , vou tentar denovo com o \t
ja volto :lol:

ae muito legal deu tudo certo \o_

vou postar o que fiz e para que usei ^^

do arquivo

eu limpei os espaçoes e tabulaçoes e tranformei nisto

legal ^^ agora so inserir no banco^^

o código é o seguinte:

        FileInputStream stream = new FileInputStream("c:/dccs.txt");  
        InputStreamReader streamReader = new InputStreamReader(stream);  
        BufferedReader reader = new BufferedReader(streamReader); 
        FileWriter fileWriter = new FileWriter("c:/dccsSemEspaco.txt");
        PrintWriter writer = new PrintWriter(fileWriter);
        
        String line = null;
        while((line=reader.readLine())!=null) {
            line = line.replace(" ", "");
            line = line.replace("\t", "");
            writer.println(line);
        }
        
        writer.close();
        fileWriter.close();
        reader.close();
        streamReader.close();
        stream.close();

Tente assim:

Scanner scan = new Scanner(new File("c:/dccs.txt"));
PrintWriter writer = new PrintWriter(new File("c:/dccsSemEspaco.txt"));

while (scan.hasNextLine()) {
   writer.println(scan.nextLine().replaceAll("\s", ""));
}

writer.close();
scan.close();
  1. O próprio FileWriter se incomoda em criar os BufferedStreamWriters.
  2. O scanner deixa o programa mais claro. Aquele seu while está bem esquisitinho;
  3. Você só precisa dar close no writer mais externo. Ele se encarrega de fechar os internos;
  4. O comando replaceAll aceita a expressão regular \s, que representa qualquer caracter branco.
  5. Se precisar, você também pode dar dois replaces seguidos:
    line = line.replace(" “, “”).replace(”\t", “”);
  6. Depois, ajuste para tratar exceções e deixar os close num finally. Como no código abaixo:
try {
   Scanner scan = new Scanner(new File("c:/dccs.txt"));
   PrintWriter writer = new PrintWriter(new File("c:/dccsSemEspaco.txt"));
	
   try {
      while (scan.hasNextLine()) {
         writer.println(scan.nextLine().replaceAll("\s", ""));
      }
   } finally {
      if (writer != null) {
         writer.close();
      }
      if (scan != null) {
         scan.close();
      }
   }
} catch (IOException e) {
   throw new RuntimeException(e);
}

[quote=Vitao1718]poxa axo que descobri o porque , na verdade existem tambem tabulaçoes que dever ser removidas , vou tentar denovo com o \t
ja volto :lol: [/quote]
Boa! Tente igualmente com outros caracteres de controle!!!