public static void copyFile(File src,File dest){
try{
FileInputStream in = new FileInputStream(src);
FileOutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int length = -1;
while((length = in.read(buffer)) != -1){
out.write(buffer,0,length);
}
out.flush();
out.close();
in.close();
}catch(Exception e){
System.out.println(e);
}
}
上面的是拷贝文件的方法,我的XML文件格式是UTF-8,里面有一堆中文,经过上面的方法拷贝到另一个地方后,里面的中文就变成了乱码,我该如何解决呢?
另:我的XML例子
<?xml version= "1.0 " encoding= "UTF-8 "?>
<AA>
<BB id= "1 " name= "中文 ">
<CC name= "中文 "/>
</BB>
<BB id= "2 " name= "中文 "/>
</AA>
------解决方案--------------------
lz是用什么打开拷贝到的文件的?
------解决方案--------------------
试一试其它的编码格式
------解决方案--------------------
你确定原文件打开没问题但拷贝得到的文件打开是乱码?
------解决方案--------------------
编码,编辑器要设置好
------解决方案--------------------
编辑器的格式在IDE中一定要设置好,
------解决方案--------------------
你比较下原文件和拷贝的文件大小是否一样?
------解决方案--------------------
InputStreamReader is = new InputStreamReader(new FileInputStream(new File( "fileName ")), "UTF-8 ");
用 "utf-8 "编码输入流看看
------解决方案--------------------
为啥不用系统调用呢?
Windows的话
Runtime.getRuntime.exec( "cmd /c copy oldfile newfile ");
UNIX的话
Runtime.getRuntime.exec( "cp oldfile newfile ");
------解决方案--------------------
拷贝后的XML文件和原来的大小不一样,那就是拷贝的时候有问题。
不过看这段代码是没有问题的,奇怪。
------解决方案--------------------
用字符流FileReader和FileWriter试试