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!!
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);
}
}
Como você está fazendo para gerar o XML? Está usando o DOM e a classe Transformer? Ou está gerando no braço?
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!!!