問題:Javaプログラムを使用して中国語を含むTXTファイルを読み書きする場合、読み取りまたは書かれたコンテンツはしばしば文字化けします。その理由は実際には非常に単純です。つまり、システムエンコードとプログラムエンコードは、異なるエンコード形式を採用しています。一般に、自分で変更しない場合、Windows自体で使用されるエンコード形式はGBK(およびGBKとGB2312は基本的に同じエンコードメソッドです)であり、IDEでのエンコードが変更されていない場合、デフォルトはUTF-8エンコードです。 TXTファイル(GBK)が手動で作成され、OSで作成され、プログラムを使用して読み取ることで文字化けされる場合。中国の文字化けの問題を避けるために、ファイルを書いて読むときにエンコード形式を明示的に指定することをお勧めします。
1。ファイルを書く:
public static void writefile(string filename、string filecontent){try {file f = new file(filename); if(!f.exists()){f.createNewfile(); } outputStreamWriter write = new outputStreamWriter(new fileoutputStream(f)、 "gbk"); BufferedWriter Writer = new BufferedWriter(write); writer.write(filecontent); writer.close(); } catch(Exception e){e.printstacktrace(); }} 2。ファイルを読む:
public static string readfile(string filename){string filecontent = ""; try {file f = new file(filename); if(f.isfile()&& f.exists()){inputstreamReader read = new inputStreamReader(new FileInputStream(f)、 "gbk"); BufferedReader Reader = new BufferedReader(read);文字列線; while((line = reader.readline())!= null){filecontent += line; } read.close(); }} catch(例外e){e.printstacktrace(); } filecontentを返します。 }