Java读取txt文件乱码
程序员文章站
2022-07-04 09:48:09
...
首先,要清楚自己建立的文本文件是用什么字符集编码的,编码和解码的字符集不兼容时一定会出错。
还得知道你的操作系统默认的字符集。比如你的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();
}
}
}
还得知道你的操作系统默认的字符集。比如你的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();
}
}
}