我写了下面的代码,它不能读取文件utf-8.我试着在网上搜索文件,但是我无法被纠正。
public List<Khach> readFile2(String fileName) {
List<Khach> resultThue = new ArrayList<Khach>();
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = reader.readLine();
while (line != null) {
String[] result = line.split(", ");
Khach k = new Khach();
k.setMaKhach(result[0]);
k.setTenKhach(result[1]);
resultThue.add(k);
line = reader.readLine();
}
reader.close();
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
} catch (IOException e) {
e.printStackTrace();
}
return resultThue;
}
}//在主要班级:
import java.util.List;
public class Program {
public static void main(String[] args) {
XuLyFile fp = new XuLyFile();
List<Khach> rk = fp.readFile2("thue.txt");
for (Khach k : rk) {
System.out.println(k);
System.out.println();
}
}
}文件thue.txt:
K1,“Nguyễn A”,VIP:NOR,3,10,5,M1-M3-M5 K2,“ễn B”,VIP,2,15,5,M1-M4-M5 K3,“Nguyễn C”,NOR,5,5,5 K4,“ễn D”,LOV,2,8,5,M1-M2-M3
发布于 2013-10-04 16:56:28
new FileReader(fileName)如文献资料所示
该类的构造函数假定默认字符编码和默认字节缓冲区大小是合适的。要自己指定这些值,请在一个InputStreamReader上构造一个FileInputStream。
因此,如果您的文件是使用UTF-8编码的,而您的默认编码不是UTF-8,那么这是行不通的。这些文档解释了在这种情况下必须做什么:
new InputStreamReader(new FileInputStream(fileName), "UTF-8")发布于 2013-10-04 16:55:13
试试这个:
BufferedReader in = new BufferedReader(
new InputStreamReader(new FileInputStream(fileName), "UTF-8"));https://stackoverflow.com/questions/19186710
复制相似问题