java生成txt文件乱码

设置编码为Unicode。网上好多方法说设置UTF-8,但是打开还是乱码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public static void main(String[] args) {
String encoding="Unicode"; //字符编码
try{
File readFile=new File("studentInfo.txt.txt"),
writeFile=new File("studentName.txt");//studentInfo.txt.txt初始编码为Unicode
//if(readFile.isFile()&&readFile.exists())
//{
//读取txt文件时的txt的原始编码格式
InputStreamReader inOne = new InputStreamReader(new FileInputStream(readFile),encoding);
BufferedReader inTwo=new BufferedReader(inOne);
//BufferedReader inTwo=new BufferedReader(new InputStreamReader(new FileInputStream(readFile),encoding));
//FileWriter tofile=new FileWriter("studentName.txt");
OutputStreamWriter tofile = new OutputStreamWriter(new FileOutputStream(writeFile),"gbk");
BufferedWriter out=new BufferedWriter(tofile);
//BufferedWriter out =new BufferedWriter(new OutputStreamWriter(new FileOutputStream(writeFile),encoding));
String s;
int i=0;
while((s=inTwo.readLine())!=null)
{
i++;
out.write("("+i+")"+""+s);
out.newLine();
}
out.flush();
out.close();
inTwo.close();
//tofile.close();
inTwo=new BufferedReader(new FileReader("studentName.txt"));
while((s=inTwo.readLine())!=null)
{
System.out.println(s);
}
}
//}
catch(IOException e){
e.printStackTrace();
}
}