我想实现将F盘的一个文件复制的到E盘,不知道我错在哪里,没有成功。请高手帮忙看一下。
代码如下:
package src;
import java.io.*;public class CopyFile 
{
public static void copy(String src,String dest)
{
    try
    {
       FileInputStream infile=new FileInputStream(src);
        
            InputStreamReader x=new InputStreamReader(infile);
            BufferedReader y=new BufferedReader(x);
            
       File newfile=new File(dest);
           if(!newfile.exists())
           {
               newfile.createNewFile();
               FileOutputStream outfile=new FileOutputStream(newfile);
               OutputStreamWriter j=new OutputStreamWriter(outfile);
               BufferedWriter m=new BufferedWriter(j);
               String s;
               while((s=y.readLine())!=null)
               {
                 m.write(s);
               }
               outfile.close();
           }
           infile.close();
          
    }
    catch(Exception e)
    {
     e.printStackTrace();
    }
}
    
    
    public static void main(String arg[])
    {
        String src="f:\\4.txt";
        String dest="e:\\5.txt";
        copy(src,dest);
    }
}

解决方案 »

  1.   

    e盘的文件6.txt已经创建,但是里边的内容为空。请高手赐教!
      

  2.   

    在操作文件时要注意一点就是正确的关闭流,你的问题是BufferedWriter没有正确地关闭,你先关闭了FileOutputStream,所以缓冲在内存中的文件内容根本没有写到目标文件中,在写完文件后应先从高层流到低层流一级一级的关闭,在本例中关闭顺序:BufferedWriter->OutputStreamWriter->FileOutputStream
    然后是输入流,顺序一样。
      

  3.   

    ......
    outfile.close();
    outfileclose了
    但是 bufferedWriter没有close
      

  4.   

    谢谢各位赐教!问题已经得到解决了。原因正如 xieboshi() 所说: 没有正确关闭流。