日期:2014-05-20  浏览次数:20931 次

采用BufferedReader和Writer实现word文件拷贝出现乱码问题
import java.io.*;
public class BufferedTest
{
public static void main(String args[]) throws IOException
{

File f=new File("JPA学习笔记.doc");
File fc=new File("副本.doc");

FileInputStream fis=new FileInputStream(f);
InputStreamReader isr=new InputStreamReader(fis,"UTF-16");
BufferedReader br=new BufferedReader(isr);

FileOutputStream fos=new FileOutputStream(fc);
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-16");

BufferedWriter bw=new BufferedWriter(osw);

String s=br.readLine();
while(s!=null)
{
bw.write(s);
bw.newLine();
bw.flush();
s=br.readLine();
}
br.close();
isr.close();
fis.close();
bw.close();
osw.close();
fos.close();
}
}
本人想采用以上代码实现word文件的复制功能,但复制后的文件总是乱码,而且字节数目与源文件有偏差,
请高手指出错误之处。几种编码方式都试过了,就是不行。

------解决方案--------------------
InputStream / OutputStream 是面向字节流。
InputReader / OutputWriter 是面向字符流。

如果你的处理要求二进制格式,就不可能用字符流而必须是字节流。
------解决方案--------------------
2L说的不错