2017-10-31 13 views
0

나는 자바에 다음 링크에서 파일을 다운로드해야NSE Bhavcopy (NSE 시장 마감 가격)를 Java로 다운로드하는 방법은 무엇입니까?

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

나는 나 자신이 발견

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); 

답변

0

C#으로 작성된 코드가 어떤 하나의 자바 상응하는 코드를 제안 할 수있다 해결책

소스 = "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()); 
    } 
}