Problema: Ao usar os programas Java para ler e escrever arquivos TXT contendo chinês, o conteúdo de leitura ou escrito geralmente aparece. O motivo é realmente muito simples, ou seja, a codificação do sistema e a codificação de programas usam diferentes formatos de codificação. Geralmente, se você não o modificar, o formato de codificação usado pelo próprio Windows é GBK (e GBK e GB2312 são basicamente o mesmo método de codificação) e, se a codificação no IDE não for modificada, o padrão é a codificação UTF-8, ou seja, o código contorcido ocorre. Quando um arquivo txt (GBK) é criado e escrito manualmente no sistema operacional, e será iluminado usando o programa para ler (UTF-8). Para evitar possíveis problemas chineses, é melhor especificar explicitamente o formato de codificação ao escrever e ler o arquivo.
1. Escreva um arquivo:
public static void writefile (string filename, string fileContent) {try {arquivo f = novo arquivo (nome do arquivo); if (! f.exists ()) {f.CreateNewFile (); } OutputStreamWriter write = new OtpitStreamWriter (new FileOutputStream (f), "GBK"); Bufferwriter writer = new bufferwriter (write); writer.write (FileContent); writer.close (); } catch (Exceção e) {e.printStackTrace (); }} 2. Leia o arquivo:
public static string readfile (string filename) {string filecontent = ""; tente {arquivo f = novo arquivo (nome do arquivo); if (f.isfile () && f.exists ()) {inputStreamReader read = new InputStreamReader (new FileInputStream (f), "gbk"); BufferredReader Reader = new BufferredReader (leitura); Linha de string; while ((line = reader.readline ())! = null) {FileContent += Line; } read.close (); }} catch (Exceção e) {e.printStackTrace (); } retornar FileContent; }