JAVA 批量下载服务器文件到本地指定文件夹并重命名

/**

* @功能 下载文件到指定文件夹并重命名

* @param url 请求的路径

* @param filePath 文件将要保存的目录

* @param filename 保存到本地的文件名

* @param method 请求方法,包括POST和GET

* @return

*/

public static FilesaveUrlAs(String url,String filePath,String filename,String method){

//System.out.println("fileName---->"+filePath);

//创建不同的文件夹目录

    File file=new File(filePath);

    createPath(filePath);

FileOutputStream fileOut =null;

    HttpURLConnection conn =null;

    InputStream inputStream =null;

try

    {

// 建立链接

        URL httpUrl=new URL(url);

        conn=(HttpURLConnection) httpUrl.openConnection();

        //以Post方式提交表单,默认get方式

        conn.setRequestMethod(method);

        conn.setDoInput(true);

        conn.setDoOutput(true);

        // post方式不能使用缓存

        conn.setUseCaches(false);

        //连接指定的资源

        conn.connect();

        //获取网络输入流

        inputStream=conn.getInputStream();

        BufferedInputStream bis =new BufferedInputStream(inputStream);

        //判断文件的保存路径后面是否以/结尾

        if (!filePath.endsWith("/")) {

filePath +="/";

        }

//写入到文件(注意文件保存路径的后面一定要加上文件的名称)

        fileOut =new FileOutputStream(filePath+filename);

        BufferedOutputStream bos =new BufferedOutputStream(fileOut);

        byte[] buf =new byte[4096];

        int length = bis.read(buf);

        //保存文件

        while(length != -1)

{

bos.write(buf, 0, length);

            length = bis.read(buf);

        }

bos.close();

        bis.close();

        conn.disconnect();

    }catch (Exception e)

{

e.printStackTrace();

    }

return file;

}



/**

* 判断是否存在路径,不存在自动创建(兼容 window 和 linux)

* @param path

*/

private void createPath(String path){

String os = System.getProperty("os.name");

    String tmpPath = path;

    //兼容 linux 系统

    if(os.toLowerCase().startsWith("win")){

tmpPath = path.replaceAll("/", "\\\\");

    }

//判断路径是否存在

    File filePath =new File(tmpPath);

    if(!filePath.exists()){

//不存在,创建目录

        filePath.mkdirs();

    }

}

你可能感兴趣的:(JAVA 批量下载服务器文件到本地指定文件夹并重命名)