java中向txt文件中写入字符串,怎么会出现乱码

str1:ABCDEFGstr2:abcdefgstr3:AaBbCcDdEeFfGg主程序中:write(str1,path3);//str1写入是正常的,其它的不正常... str1:A B C D E F G
str2:a b c d e f g
str3:A a B b C c D d E e F f G g
主程序中:write(str1,path3);//str1写入是正常的,其它的不正常
private static void write(String str3, String path3) {
try{
File file=new File(path3);
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
bw.write(str3);
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
展开
 我来答
wh猎人
2015-08-21 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:664万
展开全部

出现乱码通常是字符集的问题:要么是程序输出时就乱码了,要么是查看工具的问题。

我一般用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;
非博士CC
2013-11-14 · TA获得超过310个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:30.8万
展开全部
java io流中有两种:一种是字节流,一种是字符流,当汉字需要用字符流,其他格式的文件(如MP3,MP4什么)的用字节流。你写这种输入输出,先用数字做测试最好,你用123数字做测试再试试,如果没问题就是io流的问题。如果也是一样就把代码拿出来看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jn19811981
2015-08-11 · 超过11用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:24.6万
展开全部
你的字符集不对,统一转成UTF-8的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
C和铉de华丽
2013-11-14
知道答主
回答量:77
采纳率:0%
帮助的人:8.4万
展开全部
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();
}
}
我写进去没无问题的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我的无一生
2013-11-14
知道答主
回答量:18
采纳率:0%
帮助的人:9.2万
展开全部
你用的是字节流来写入的文件流,要想忘*.txt里写入文件.应该是用字符流来写入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式