/**
     *  文件拷贝。
     *
     *@param  from             源路径。
     *@param  to               目标路径。
     *@exception  IOException  Description of the Exception
     */
    public static void move( String from, String to )
            throws IOException
    {
        int BUFF_SIZE = 100000;
        byte[] buffer = new byte[ BUFF_SIZE ];
        InputStream in = null;
        OutputStream out = null;        try
        {
            in = new FileInputStream( from );
            out = new FileOutputStream( to );            while ( true )
            {
                synchronized ( buffer )
                {
                    int amountRead = in.read( buffer );                    if ( amountRead == -1 )
                    {
                        break;
                    }                    out.write( buffer, 0, amountRead );
                }
            }
            in.close();
            out.close();            File f=new File(from);
            if(!f.exists()) {
                System.out.println("file not found");
                return;
            }
            f.delete();        }
        finally
        {
            if ( in != null )
            {
                in.close();
            }            if ( out != null )
            {
                out.close();
            }
        }
    }

解决方案 »

  1.   

    我写的一个可以拷贝文件和文件夹的方法,希望对你有帮助.
    public static void CopyFiles(String fSName,String fDName)
    {
      File inFile = new File(fSName);
      File outFile = new File(fDName);
      if (inFile.isDirectory())
      {
        outFile.mkdir();
        File[] listFiles = inFile.listFiles();
        for(int i = 0;i < listFiles.length;i ++)    
        {
          String fileName1 = listFiles[i].getPath();
          String fileName2 = outFile.getPath() + System.getProperty("file.separator") + listFiles[i].getName();
          System.out.println(fileName1 + "      " + fileName2);
          CopyFiles(fileName1,fileName2);
        }
      }
      if (inFile.isFile())
      {
        try
        {
          DataInputStream in = new DataInputStream(
          new BufferedInputStream(
          new FileInputStream(inFile)));
          DataOutputStream out;
          if (outFile.exists())
          out = new DataOutputStream(
          new BufferedOutputStream(
          new FileOutputStream(fDName)));
          else
          out = new DataOutputStream(
          new BufferedOutputStream(
          new FileOutputStream(outFile)));     
          byte [] buf = new byte[1024];
          int nums,offset=0;
          while ((nums = in.read(buf,offset,1024)) != -1)
          {
            out.write(buf,offset,nums);
          }
          System.out.println("nums:" + nums);
          out.close();
          in.close();
        }
        catch (FileNotFoundException e)
        {
          System.out.println("File Not Find!");     
        }
        catch (IOException e)
        {
          System.out.println(e.getMessage());
        }
      }
    }