Java读取txt文件乱码

首先,要清楚自己建立的文本文件是用什么字符集编码的,编码和解码的字符集不兼容时一定会出错。

还得知道你的操作系统默认的字符集。比如你的windows用的是gbk。

当在不知道自己的txt是什么编码格式的情况下,可以把文件另存为UTF-8,然后在代码里对其进行相应的解码就可以了。
  下面是一个例子:
  import java.io.BufferedReader;
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.InputStreamReader;
  /**
  * 读取TXE数据
  *
  * @author MIAOHUI
  *
  * TXT文本内容格式1 :
  * A1:A2:A3:A4:A5-
  * B1:B2:B3:B4:B5-
  * C1:C2:C3:C4:C5-
  *
  * TXT文本内容格式2 :
  * A1:A2:A3:A4:A5-B1:B2:B3:B4:B5-C1:C2:C3:C4:C5-
  *
  */
  public class Utils {
  public static void main(String arg[]) {
  try {
  String encoding = "UTF-8"; // 字符编码(可解决中文乱码问题 )
  File file = new File("c:/accounts.txt");
  if (file.isFile() && file.exists()) {
  InputStreamReader read = new InputStreamReader(
  new FileInputStream(file), encoding);
  BufferedReader bufferedReader = new BufferedReader(read);
  String lineTXT = null;
  while ((lineTXT = bufferedReader.readLine()) != null) {
  // System.out.println(lineTXT );
  //将文本读取出来的字符去掉"," 因为读取出来的字符是用","来分隔的
  String text = lineTXT.replaceAll(",", "");
  //用字符分隔成数组
  String[] version_1 = text.split("-");
  for (int i = 0; i < version_1.length; i++) {
  String[] version_2 = version_1[i].split(":");
  for (int j = 0; j < version_2.length; j++) {
  System.out.println(version_2[j]);
  }
  System.out.println("-------");
  }
  }
  read.close();
  }else{
  System.out.println("找不到指定的文件!");
  }
  } catch (Exception e) {
  System.out.println("读取文件内容操作出错");
  e.printStackTrace();
  }
  }
  }

你可能感兴趣的:(java,C++,c,windows,J#)