Problema: cuando se usa programas Java para leer y escribir archivos TXT que contienen chino, el contenido leído o escrito a menudo aparecerá confuso. La razón es en realidad muy simple, es decir, la codificación del sistema y la codificación del programa utilizan diferentes formatos de codificación. En general, si no lo modifica usted mismo, el formato de codificación utilizado por Windows en sí es GBK (y GBK y GB2312 son básicamente el mismo método de codificación), y si la codificación en IDE no se modifica, el valor predeterminado es la codificación UTF-8, por lo que ocurre el código de carga. Cuando un archivo txt (GBK) se crea y se escribe manualmente en el sistema operativo, y se vominará mediante el uso del programa para leer (UTF-8). Para evitar posibles problemas de confusión chinos, es mejor especificar explícitamente el formato de codificación al escribir y leer el archivo.
1. Escribe un archivo:
public static void WriteFile (String FileName, String FileContent) {try {archivo f = nuevo archivo (nombre de archivo); if (! F.Exists ()) {F.CreateNewFile (); } OutputStreamWriter write = new OutputStreamWriter (nuevo FileOutputStream (f), "GBK"); BufferedWriter Writer = new BufferedWriter (escribir); escritor.write (fileContent); escritor.close (); } catch (Exception e) {E.PrintStackTrace (); }} 2. Lea el archivo:
public static string readFile (string filename) {string fileContent = ""; intente {archivo f = nuevo archivo (nombre de archivo); if (f.isFile () && f.exists ()) {inputStreamReader read = new InputStreamReader (new FileInputStream (f), "GBK"); BufferedReader lector = new BufferedReader (leer); Línea de cadena; while ((línea = lector.readline ())! = null) {fileContent += line; } read.close (); }} catch (Exception e) {E.PrintStackTrace (); } return fileContent; }