【问题标题】:How to download NSE Bhavcopy (NSE market closing price) in Java?如何用 Java 下载 NSE Bhavcopy(NSE 市场收盘价)?
【发布时间】:2018-04-12 11:43:37
【问题描述】:

我需要从以下 Java 链接下载文件

[http://www.nseindia.com/content/historical/EQUITIES/2017/OCT/cm30OCT2017bhav.csv.zip][1]

我有用 C# 编写的代码,有人可以建议 Java 等效代码

WebClient webClient = new WebClient();
String accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
String agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1";
webClient.Headers.Add(HttpRequestHeader.Accept, accept);
webClient.Headers.Add(HttpRequestHeader.UserAgent, agent);
webClient.UseDefaultCredentials = true;
webClient.DownloadFile(source, target);

【问题讨论】:

    标签: java download webclient


    【解决方案1】:

    我自己找到了解决办法

    source = "http://www.bseindia.com/download/Bhavcopy/Derivative/bhavcopy07-11-17.zip"; target = "d:\Market Feeds\EQD BSE Bhavcopy\"

    public static void downloadFileHttp(String source, String destination) throws Exception { 
    
        try{
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ipaddress, port));
    
        URL oracle = new URL(source);
        URLConnection yc = oracle.openConnection(proxy);
    
        InputStream in = yc.getInputStream();
        FileOutputStream out = new FileOutputStream(destination + "\\bhavcopy.zip");
        copySource2Dest(in, out, 1024);
        out.close();
    
        extractFolder(destination + "\\bhavcopy.zip", destination);
    
        //Path path = FileSystems.getDefault().getPath(destination, "bhavcopy.zip");
        //boolean succ = Files.deleteIfExists(path);
    
        System.out.println("Download is successfull");
        }
        catch(Exception e){
            System.out.println("Error in downloading : " + e);
        }
    }
    
     public static void copySource2Dest(InputStream input, OutputStream output, int bufferSize)
             throws IOException {
                 byte[] buf = new byte[bufferSize];
                 int n = input.read(buf);
                 while (n >= 0) {
                     output.write(buf, 0, n);
                     n = input.read(buf);
                 }
                 output.flush();
             }
    
    public static void extractFolder(String zipFile,String extractFolder) 
    {
        try
        {
            int BUFFER = 2048;
            File file = new File(zipFile);
    
            ZipFile zip = new ZipFile(file);
            String newPath = extractFolder;
    
            new File(newPath).mkdir();
            Enumeration zipFileEntries = zip.entries();
    
            ZipEntry entry;
    
            // Process each entry
            while (zipFileEntries.hasMoreElements())
            {
                // grab a zip file entry
                entry = (ZipEntry) zipFileEntries.nextElement();
                String currentEntry = entry.getName();
    
                File destFile = new File(newPath, currentEntry);
                File destinationParent = destFile.getParentFile();
    
                // create the parent directory structure if needed
                destinationParent.mkdirs();
    
                if (!entry.isDirectory())
                {
                    BufferedInputStream is = new BufferedInputStream(zip
                    .getInputStream(entry));
                    int currentByte;
                    // establish buffer for writing file
                    byte data[] = new byte[BUFFER];
    
                    // write the current file to disk
                    FileOutputStream fos = new FileOutputStream(destFile);
                    BufferedOutputStream dest = new BufferedOutputStream(fos,
                    BUFFER);
    
                    // read and write until last byte is encountered
                    while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
                        dest.write(data, 0, currentByte);
                    }
                    dest.flush();
                    dest.close();
                    is.close();
                }
            }
            zip.close();
        }
        catch (Exception e){
                System.out.println("ERROR: "+e.getMessage());
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多