File fileIn = new File("From", "1.doc");
File fileOut = new File("TO", "2.doc");Reader in = new FileReader(fileIn);
Write out = new FileWrite(fileOut);int c;while((c = in.read()) != -1) {
  out.write(c);
}我想把1.doc文件的abdafewfwe内容拷到2.doc,怎么出错(乱码)?
请问是什么原因啊?有谁能不能写一个更完整的程序啊?谢谢

解决方案 »

  1.   

    由于现在手边没有工具,不能写代码帮助你.
    我记得好象是这样:
    File p_file = new File("");
    BufferedReader reader= new BufferedReader(
    new InputStreamReader(
    new FileInputStream(p_file),"GB2312")); 
    这里的"GB2312"换成你要的字符集合的名字
    大致的程序就这样了
      

  2.   

    File fileIn = new File("From", "1.doc");
    File fileOut = new File("TO", "2.doc");FileInputStream in = new FileInputStream(fileIn);
    FileOutputStream out = new FileOutputStream(fileOut);int c;while((c = in.read()) != -1) {
      out.write(c);
    }
      

  3.   

    import java.io.*;
    class A
    {
      public static void main(String[] args)throws Exception
      {
        File in=new File("D:\\from.doc");
        File out=new File("D:\\to.doc");
        FileReader inF = new FileReader(in);
        FileWriter outF= new FileWriter(out);
        int c;
        while((c=inF.read()) != -1) 
           outF.write(c);
        outF.close();
        inF.close();
     }}
    我觉得你的没有问题,要不试试类型转换,我这个跟你的几乎一样,刚才运行过的,没有问题。
    欢迎赐教
      

  4.   

    FileReader fileIn = new FileReader("1.doc");
    FileWriter fileOut = new FileWriter("2.doc");BufferedReader in = new BufferedReader(fileIn);
    BufferedWriter out = new BufferedWriter(fileOut);String txt=in.readline();while(txt!=null) {
      out.write(c);
    }
    in.close();
    fileIn.close();
    out.flush();
    out.close();
    fileOut.close();
      

  5.   

    用它 DataInputStream 它可以用来读取二进制数据的
    DataInputStream in = new DataInputStream(new FileInputStream(1.doc));
    输出就用DataOutputStream;
      

  6.   

    对了,最后一定要用flsuh()这样才能把缓冲区里面的东东写出去。
    DataInputStream in = new DataInputStream(new FileInputStream("1.doc"));
    这里还搞错了,刚才查了一下JDK,FileInputStream 构造函数是这样FileInputStream(File file);