zoukankan      html  css  js  c++  java
  • java远程下载文件到本地

    方法一 

    **
     * 下载远程文件并保存到本地
     * 
     * @param remoteFilePath-远程文件路径
     * @param localFilePath-本地文件路径(带文件名)
     */
    public void downloadFile(String remoteFilePath, String localFilePath) {
    	URL urlfile = null;
    	HttpURLConnection httpUrl = null;
    	BufferedInputStream bis = null;
    	BufferedOutputStream bos = null;
    	File f = new File(localFilePath);
    	try {
    		urlfile = new URL(remoteFilePath);
    		httpUrl = (HttpURLConnection) urlfile.openConnection();
    		httpUrl.connect();
    		bis = new BufferedInputStream(httpUrl.getInputStream());
    		bos = new BufferedOutputStream(new FileOutputStream(f));
    		int len = 2048;
    		byte[] b = new byte[len];
    		while ((len = bis.read(b)) != -1) {
    			bos.write(b, 0, len);
    		}
    		bos.flush();
    		bis.close();
    		httpUrl.disconnect();
    	} catch (Exception e) {
    		e.printStackTrace();
    	} finally {
    		try {
    			bis.close();
    			bos.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

    方法二

    /**
     * 下载远程文件并保存到本地
     * 
     * @param remoteFilePath-远程文件路径
     * @param localFilePath-本地文件路径(带文件名)
     */
    public void downloadFile(String remoteFilePath, String localFilePath) {
    	URL website = null;
    	ReadableByteChannel rbc = null;
    	FileOutputStream fos = null;
    	try {
    		website = new URL(remoteFilePath);
    		rbc = Channels.newChannel(website.openStream());
    		fos = new FileOutputStream(localFilePath);//本地要存储的文件地址 例如:test.txt
    		fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
    	} catch (Exception e) {
    		e.printStackTrace();
    	}finally{
    		if(fos!=null){
    			try {
    				fos.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    		if(rbc!=null){
    			try {
    				rbc.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    }
    

      

  • 相关阅读:
    [导入]CodeSmith基础(六)
    [导入]CodeSmith基础(五)
    POJ 2229 Sumsets(经典2次幂和问题)
    UVa 10820 Send a Table(欧拉函数)
    UVa 571 Jugs(经典倒水问题)
    UVa 10717 Mint(LCM)
    UVa 10791 Minimum Sum LCM(素因子分解)
    汇编的艺术(01)sizeof operator
    UVa 11121 Base 2(负数进制)
    UVa 106 Fermat vs. Pythagoras(毕达哥拉斯定理)
  • 原文地址:https://www.cnblogs.com/luoruiyuan/p/9132121.html
Copyright © 2011-2022 走看看