FileReader ?[resolvido]

Pessoal tenho trocentos arquivos TXT, que tem vários caracteres:

 "!@#$%¨&*(+_)(*&¨%$#@!" serdctfvygbhunijkokiuhygyf346587908y7tyuiojaf-098yu!@#$%¨&*()_DFGHJKDFGHJKJH

Gostaria de ler o arquivo e depois limpar onde tivece @#$%¨&…
Alguém pode da uma ajuda ?

import java.io.BufferedReader;  
import java.io.FileReader;  
import java.io.RandomAccessFile;  
import java.util.StringTokenizer;  
  
public class Leitura {  
  
   public void arquivo() {  
      String linha = null;  
      try {  
         // instancia do arquivo que vou ler  
         FileReader reader = new FileReader("mapeamento");  
         BufferedReader leitor = new BufferedReader(reader);  
  
         // loop que percorrerá todas as  linhas do arquivo.txt que eu quero ler  
         while ((linha = leitor.readLine()) != null) {  
                      //No metodo StringTokenizer passo os parametros que quero ler, em seguida o que eu quero descartar no meu caso ( - ) e ( ; ).   
            StringTokenizer st = new StringTokenizer(linha, "-;" );  
                    // Aqui determino que enquanto existir tokens que ele faça a leitura  
            String dados = st.nextToken();  
              
                                System.out.print(dados);  
            System.out.println("");  
         }  
  
         leitor.close();  
         reader.close();  
  
      } catch (Exception e) {  
         e.printStackTrace();  
  
      }  
   }  
  
   public static void main(String[] args) {  
      Leitura t = new Leitura();  
      t.arquivo();  
   }  
} 

Tente usar o método replace da String , tipo:

suaString.replace("!@#$%","") 

Não intendi ! pode da um exemplo ?

Usar replace não resolve?

E vc está mesmo programando em Java 4?

Sim satanas!

Pega a String que vc quer tirar os caracteres especiais e faz isso

  dados = eliminaCaracteresEspeciais(dados);

public String eliminaCaracteresEspeciais(String dados) { StringBuilder strb = new StringBuilder(); String[] especiais = {"!","@","#","$","%","&","*","(","+","_",")" }; //nessa lista vc coloca todos os caracteres q vc nao quer for(String str : especiais) { strb.append( str.replace(str,"")); } return strb.toString; }

Vini, tu ta velho pra caralho… a outra foto parecia ter 16 anos… putz

Cara, nao deu certo nao usando !

Abraço.

luiz_renato Não me chama assim que fico até emocionado !

Obrigado deu certo de primeira !

Era um errinho bobo aqui… !

Abraço.

Na outra foto eu tinha 23. Nessa 31.
O tempo passa mesmo.

Mas na sua outra foto, vc parecia homem…hhehehe…
Quem é nessa sua foto atual?

Sou eu mesmo ! e que agora Mudei de Sexo ! kkkkkkk

Minha esposa !

Abraço e obrigado !

Luiz, quando eu mando rodar ele ler mas não tira os caracteres especiais !
Que tu acha ?

[code]import java.io.BufferedReader;
import java.io.FileReader;
import java.util.StringTokenizer;

/**
*

  • @author jr
    */

public class Caracteres {

public void arquivo() {
String linha = null;
try {
// instancia do arquivo que vou ler
FileReader reader = new FileReader(“mapeamento”);
BufferedReader leitor = new BufferedReader(reader);

     // loop que percorrerá todas as  linhas do arquivo.txt que eu quero ler    
     while ((linha = leitor.readLine()) != null) {    
                  //No metodo StringTokenizer passo os parametros que quero ler, em seguida o que eu quero descartar no meu caso ( - ) e ( ; ).     
        StringTokenizer st = new StringTokenizer(linha, "-;" );    
                // Aqui determino que enquanto existir tokens que ele faça a leitura    
        String dados = st.nextToken();    
            
                            System.out.print(dados);    
        System.out.println("");    
     }    

     leitor.close();    
     reader.close();    

  } catch (Exception e) {    
  }    

}

public static void main(String[] args) {
Leitura t = new Leitura();
t.arquivo();
}
dados = eliminaCaracteresEspeciais(dados);

public String eliminaCaracteresEspeciais(String dados) {
StringBuilder strb = new StringBuilder();
String[] especiais = {"!","@","#","$","%","&","*","(","+","_",")" }; //nessa lista vc coloca todos os caracteres q vc nao quer
for(String str : especiais) {
strb.append( str.replace(str,""));
}
return strb.toString;
}

}
[/code]

Escuta, pelo código mostrado (não sei se vc copiou certo pra msg ) o trecho que te falei tem que estar na linha 41

dados = eliminaCaracteresEspeciais(dados);  

tem que estar log depois da linha lida do arquivo 25 String dados = st.nextToken(); dados = eliminaCaracteresEspeciais(dados); System.out.print(dados);

Mas copia a String q vc está lendo do arquivo pra dar uma olhada.

Perdão satan, erro crasso e ridículo meu, o método correto é :

public static String eliminaCaracteresEspeciais(String dados) { String[] especiais = {"!","@","#","$","%","&","*","(","+","_",")" }; //nessa lista vc coloca todos os caracteres q vc nao quer for(String str : especiais) { dados = dados.replace(str,""); } return dados; }

Este código encontra os caracteres especiais e substitui por ’ ’ espaço vazio.


import java.io.BufferedReader;  
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
  
public class Leitura {  
	
	public void arquivo() {  
	   
      
	     try {  

    	  String arquivoLeitura = "arquivo2.txt";

         InputStream e = new FileInputStream(arquivoLeitura);
         InputStreamReader hes = new InputStreamReader(e);
         BufferedReader br = new BufferedReader(hes);
         String s = br.readLine();
      
         
         OutputStream escrita = new FileOutputStream(arquivoLeitura);
         OutputStreamWriter wEscrita = new OutputStreamWriter(escrita);
         BufferedWriter bEscrita = new BufferedWriter(wEscrita);
         
         String[] especiais = {"!","@","#","$","%","&","*","(","+","_",")" }; 
         
         
         
         while(s!=null){
        	
      	   char b[] = s.toCharArray();
           StringBuilder sb = new StringBuilder();
           for(char agumento:b){
    		   
   		    for(String pi:especiais  ){
   		    	String nova = Character.toString(agumento);
   		    	if(nova.equals(pi)){
   		    	     agumento=' ';	
   		    	}
   		    	
   		    }

   	    	sb.append(agumento);
   	       
   	   }
   	  
             bEscrita.write(""+sb);
        	 System.out.println(sb);
        	 s = br.readLine();
         }
         
         br.close();
         bEscrita.close();
        
        
      } catch (Exception e) {  
         e.printStackTrace();  
  
      }  
 
   
   }  
 
   public static void main(String[] args) {  
   Leitura t = new Leitura();  
      t.arquivo();  
   }   
   
} 

run:
java.io.FileNotFoundException: arquivo2.txt (O sistema não pode encontrar o arquivo especificado)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:120)
	at java.io.FileInputStream.<init>(FileInputStream.java:79)
	at Leitura.arquivo(Leitura.java:20)
	at Leitura.main(Leitura.java:71)
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Problema e que não acha o arquivo ele t? c:\

?

Tem que substituir “arquivo2.txt” pelo nome do seu arquivo.
Ele deve ter colocado esse nome só para testar…

Pois é Vini, isso eu fiz… testei no linux e no windows… ele não encontra o arquivo, a pergunta é… onde será que ele vai buscar o arquivo. CLASPATH…

c:
\

por padrão ! ou será que tem que por o c:\arquivo.txt

testei de várias maneiras… da o mesmo erro.

Ele busca no caminho de execução. Normalmente, a mesma pasta onde o .jar está, caso você não tenha especificado nada.

Na variável arquivoLeiteura você tem que falar o caminho de onde está o seu arquivo se tiver usando eclipse e só colocar o arquivo no diretório do projeto. Coloque tambem a extensão do arquivo.
Ex com caminho absoluto:
String arquivoLeitura = “C:/Users/magno/workspace/ProjetoArquivo/NomeDoSeuArquivo.txt”