有关输出流的问题,谢谢

yifuzhiming 2009-11-04 04:27:01
以下是我一个写入文件的方法,请问为什么我加了UTF-8了,还是有一些乱码呢,之前没加是全乱的,加了大部分好了,还有一些是乱的,谢谢大家


public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
char[] buffer = new char[1024];
BufferedReader bufferedInputStream = new BufferedReader(new StringReader(new String (content.getBytes("UTF-8"))));
BufferedWriter bufferedOutputStream = new BufferedWriter(new FileWriter(filepath));
int k = 0;
while ((k = bufferedInputStream.read(buffer)) != -1) {
bufferedOutputStream.write(buffer, 0, k);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
bufferedInputStream.close();
}
...全文
114 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sangshusen_1988 2009-11-04
  • 打赏
  • 举报
回复
你java文件是什么编码的??默认应该是GBK的,
改成这样看看new String(content.getBytes("GBK"), "UTF-8);
dreamhyz 2009-11-04
  • 打赏
  • 举报
回复
应该是系统的字符编码问题。。最好统一下。。。
yifuzhiming 2009-11-04
  • 打赏
  • 举报
回复

public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
char[] buffer = new char[1024];
BufferedReader input= new BufferedReader(new StringReader(new String (content.getBytes("UTF-8"))));
BufferedWriter output= new BufferedWriter(new FileWriter(filepath));
int k = 0;
while ((k = input.read(buffer)) != -1) {
output.write(buffer, 0, k);
}
output.flush();
output.close();
input.close();
}


对不起,是我代码写的不够规范,我重新改一下

soli11722984 2009-11-04
  • 打赏
  • 举报
回复
会不会你的char[]截取的时候,刚好最后的一位截到半个字,结果部分乱了
建议把缓冲大点试下
duzhonghua 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gukuitian 的回复:]
Java codepublicvoid savefile(String filepath,String content)throws FileNotFoundException, IOException{
BufferedWriter bufferedOutputStream=new BufferedWriter(new FileWriter(filepath));

?-
[/Quote]

这样写啊
chenwqi0120 2009-11-04
  • 打赏
  • 举报
回复
我跑了一次代码,不加utf-8的时候没有乱码,加上了就出现乱码。
可能像1楼说的一样,你电脑上字符集有问题
pywepe 2009-11-04
  • 打赏
  • 举报
回复
bufferedInputStream

这是个Reader

你为什么这样命名?

看晕了我
gukuitian 2009-11-04
  • 打赏
  • 举报
回复

public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
BufferedWriter bufferedOutputStream = new BufferedWriter(new FileWriter(filepath));

bufferedOutputStream.write(content);
bufferedOutputStream.flush();
bufferedOutputStream.close();
}
bawgiitx 2009-11-04
  • 打赏
  • 举报
回复
用 GB2312
BufferedReader bufferedInputStream = new BufferedReader(new StringReader(new String (content.getBytes("GB2312"))));
gukuitian 2009-11-04
  • 打赏
  • 举报
回复
把一个String 写入文件中?有这么麻烦吗
dickli1986 2009-11-04
  • 打赏
  • 举报
回复
输出流也设置字符集

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧