首页 > 代码库 > Java读数据是的编码问题。
Java读数据是的编码问题。
今天使用Java的I/O读写数据的时候,出现了中文乱码问题,在老师的帮助下找到了问题的根源:
在window中新建文件时,如果你新建的是文本文件或者是一个windows无法识别的文件,他默认使用的编码是ANSI。
而Java I/O默认使用的是UTF-8。这是就会出现中文的乱码问题
解决方法:
1:可以手动把文件另存为UTF-8格式。
2:读写数据时设置编码:见以下代码中的红色部分
public static String getNewTheme(String newTitle,String comment) throws IOException{
File file = new File("H:\\theme.template");
InputStream inter = new FileInputStream(file);
BufferedInputStream buffereIner = new BufferedInputStream(inter);
byte[] buffer =new byte[50];
int len = buffereIner.read(buffer);
buffereIner.close();
//读数据时设置编码
String oldTitle= new String(buffer,0,len,"UTF-8");
System.out.println(oldTitle);
oldTitle=oldTitle.replace("title", newTitle);
oldTitle=oldTitle.replace("comment", comment);
OutputStream outer = new FileOutputStream(new File("H:\\new.template"));
BufferedOutputStream buffereouter = new BufferedOutputStream(outer);
buffereouter.write(oldTitle.getBytes());
buffereouter.close();
System.out.println(oldTitle);
return null;
}