java实现文件下载的几种情况

   日期:2024-12-26    作者:0nmt5 移动:http://3jjewl.riyuangf.com/mobile/quote/36397.html



-------------------------------------------------------------------------以上内容转自http://blog.csdn.net/longshengguoji/article/details/39433307--------------------------------------------------------



此外,还有一种下载情况-------------下载其他服务器上的文件

此时,需要使用http将其他服务器文件保存至本地,然后如果有下载需求再另行下载操作。


如下代码实现从其他服务器保存代码至本地


public class FileUtilz {

    public boolean saveUrlAs(String photoUrl, String fileName) {
        // 此方法只能用户HTTP协议
        System.out.println("photoUrl = " + photoUrl);
        System.out.println("fileName = " + fileName);

        try {
            URL url = new URL(photoUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            DataInputStream in = new DataInputStream(connection.getInputStream());
            DataOutputStream out = new DataOutputStream(new FileOutputStream(fileName));
            byte[] buffer = new byte[4096];
            int count = 0;
            while ((count = in.read(buffer)) > 0) {
                out.write(buffer, 0, count);
            }
            out.close();
            in.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    public String getDocumentAt(String urlString) {
        // 此方法兼容HTTP和FTP协议
        StringBuffer document = new StringBuffer();
        try {
            URL url = new URL(urlString);
            URLConnection conn = url.openConnection();
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line = null;
            while ((line = reader.readLine()) != null) {
                document.append(line + " ");
            }
            reader.close();
        } catch (MalformedURLException e) {
            System.out.println("Unable to connect to URL: " + urlString);
        } catch (IOException e) {
            System.out.println("IOException when connecting to URL: " + urlString);
        }
        return document.toString();
    }

    public static void main(String[] args) {

        FileUtilz t = new FileUtilz();
        String photoUrl = "http://61.178.11.86:9330/agengr/test.jpg";
        String fileName = photoUrl.substring(photoUrl.lastIndexOf("/"));
        String filePath = "D:/aaaaa";
        boolean flag = t.saveUrlAs(photoUrl, filePath + fileName);
        System.out.print("下载状态" + flag);

    }

}

如需下载,代码类似如下

String downloadUrl=“http://61.178.11.86:9330/agengr/test.jpg”

public String downloadInvoice(){
        OutputStream outp = null;
        FileInputStream in = null;
        
        try {
            Assert.notNull(downloadUrl);
            
            
            FileUtilz t = new FileUtilz();
            String fileName = downloadUrl.substring(downloadUrl.lastIndexOf("/") + 1, downloadUrl.length());
            String filePath = "D:/aaaaa/" + fileName;
            boolean flag = t.saveUrlAs(downloadUrl, filePath);
            
            if(flag){
                
                fileName = URLEncoder.encode(fileName, "UTF-8");
                getReponse().addHeader("Content-Disposition", "attachment;filename=" + fileName);
            
                outp = getReponse().getOutputStream();
                in = new FileInputStream(filePath);

                byte[] b = new byte[1024];
                int i = 0;

                while ((i = in.read(b)) > 0) {
                    outp.write(b, 0, i);
                }
                
                outp.flush();
                
            }else {
                logger.error("下载失败。。。");
            }
            
            
            
        } catch (Exception e) {
            logger.error("下载发票出错", e);
        } finally {
            try {
                if (in != null) {
                    in.close();
                    in = null;
                }
            } catch (Exception e) {
                logger.error("下载发票,关闭输入输出流出错", e);
            }
        }
        
        return null;
    }

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号