Manipular txt

3 respostas
R

Bom dia, tenho uma aplicação que le o conteudo de um arquivo txt e gera um xml, está tudo funcionando corretamente, mas estou com problemas nos caracteres especiais. o ç e alguns acentos estão com problema. O que será?

public String leArquivoTXT(String caminho){
		String texto = "";
		try {
			FileReader reader = new FileReader("/home/renato/teste.txt");
			BufferedReader buffer = new BufferedReader(reader);
			while(buffer.ready()){
				texto += buffer.readLine();
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		return texto;
	}

Valeu!!

3 Respostas

E

O problema com acentos é do encoding. Pode ser que seu arquivo-texto esteja em formato Windows (ou seja, “ISO-8859-1”) ou em formato UTF-8.

Nunca nunca nunca faça uma montagem de string usando “+=” como você fez, isso é muito lento. Se seu arquivo tiver mais de 1000 linhas, você vai perceber a diferença.

Faça assim:

import java.io.*;
import javax.swing.*;

class LeArquivoTxt {
    public String leArquivoTxt (File caminho, String encoding) throws FileNotFoundException, 

UnsupportedEncodingException, IOException {
        StringBuilder sb = new StringBuilder();
        String lineSeparator = System.getProperty ("line.separator");
        BufferedReader br = null; 
        try {
            br = new BufferedReader (new InputStreamReader (new FileInputStream (caminho), 

encoding));
            for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
                sb.append (linha).append (lineSeparator);
            }
        } finally {
            if (br != null) try { br.close(); } catch (IOException ex) { }
        }
        return sb.toString();
    }

    public static void main (String[] args) throws Exception {
         LeArquivoTxt lat = new LeArquivoTxt();
         String s = lat.leArquivoTxt (new File ("c:\\temp\\teste.txt"), "ISO-8859-1");
         JOptionPane.showMessageDialog (null, s);
    }
}
ViniGodoy

Como você está fazendo para gerar o XML? Está usando o DOM e a classe Transformer? Ou está gerando no braço?

R

entendi, eu estou usando eclipse e ubuntu como servidor, depois de várias pesquisas troquei o charset do eclipse e quendo executo pelo eclipse funciona e ele monta os caracteres normalmente, mas quando rodo pelo servidor o problema continua, acho que o meu problema não é com java mas com a configuração de charset do ubuntu. Valeu rapaziada!!!

Criado 23 de junho de 2010
Ultima resposta 23 de jun. de 2010
Respostas 3
Participantes 3