出现乱码通常是字符集的问题:要么是程序输出时就乱码了,要么是查看工具的问题。
我一般用Editplus查看文本文件,打开时可以选择用哪个字符集(Encoding)打开。
若确认程序输出时就乱码,可按如下方式:
java.io.PrintStream ps = null;
FileOutputStream fout = new FileOutputStream("my.txt");
String text="我的字符串数据";// 在写入前,可以调试下,看看在程序中是否乱码
String encoding="utf-8"; // 指定文件写入时采用的字符集(Windows默认是GBK)
ps = new java.io.PrintStream(fout, true, encoding);
ps.print(text);
ps.close();
fout.close();
ps = null;
fout = null;
java io流中有两种:一种是字节流,一种是字符流,当汉字需要用字符流,其他格式的文件(如MP3,MP4什么)的用字节流。你写这种输入输出,先用数字做测试最好,你用123数字做测试再试试,如果没问题就是io流的问题。如果也是一样就把代码拿出来看看。
你的字符集不对,统一转成UTF-8的
public static void main(String[] args) {
try{
String str3 = "A a B b C c D d E e F f G g ";
File file=new File("E:/abc.txt");
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
bw.write(str3);
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
我写进去没无问题的
你用的是字节流来写入的文件流,要想忘*.txt里写入文件.应该是用字符流来写入