java BufferedReader, escreve algo diferente do que ele lê
-
07-07-2019 - |
Pergunta
i analisado um texto (código CAL) com BufferedReader e BufferedWriter em Java, infelizmente, as linhas que eu vermelho e escreveu com outStream.write (linha); mudaram, por favor, olhe Screenshots:
http://uploadz.eu/images/4qz8mtkm2d9zx3x5ms3n.png h ** p: //uploadz.eu/images/c03hgkrgrmit2ij2mug.png
como você vê, algum caráter especial que mudou as linhas embora eu não pretende mudá-los.
, tanto quanto eu sei, BufferedWriter / leitor deve trabalhar em unicode por padrão.
Solução
Bem BufferedWriter
e BufferedReader
são codificação agnóstico -. Eles nunca lidar com as codificações reais, como eles estão apenas tamponamento leitores e escritores existentes
Agora FileWriter
e uso FileReader
a codificação padrão do sistema (urgh). Para trabalho contornar isso, você deve geralmente usar um InputStream
/ InputStreamReader
ou OutputStream
par / OutputStreamWriter
(possivelmente envolvido em um BufferedReader
/ BufferedWriter
), e especificar a codificação explicitamente.
Você não disse que você está lendo realmente de - é um arquivo? Sabe qual é a codificação do arquivo?
Outras dicas
Você deve quer saber a codificação se você estiver indo para tratar o conteúdo como texto (String), ou, quando a cópia é o seu objetivo, ou tratar o conteúdo como um array de bytes.