以下是我一个写入文件的方法,请问为什么我加了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();
}
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();
}
BufferedReader bufferedInputStream = new BufferedReader(new StringReader(new String (content.getBytes("GB2312"))));
public void savefile(String filepath,String content) throws FileNotFoundException, IOException{
BufferedWriter bufferedOutputStream = new BufferedWriter(new FileWriter(filepath)); bufferedOutputStream.write(content);
bufferedOutputStream.flush();
bufferedOutputStream.close();
}
可能像1楼说的一样,你电脑上字符集有问题
建议把缓冲大点试下
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();
}
对不起,是我代码写的不够规范,我重新改一下
改成这样看看new String(content.getBytes("GBK"), "UTF-8);