url로 파일 다운로드

개발/코딩 2015. 3. 12. 15:29

package com.space.rentalServer.batch;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

public class mobigoFileDown
{
 /**
 * 버퍼 사이즈
 */
 final static int size = 1024;
 
 /**
 * fileAddress에서 파일을 읽어, 다운로드 디렉토리에 다운로드
 *
 * @param fileAddress
 * @param localFileName
 * @param downloadDir
 */
 public static void fileUrlReadAndDownload(String fileAddress,String localFileName, String downloadDir)
 {
  OutputStream outStream = null;
  URLConnection uCon = null;
  
  InputStream is = null;
  try
  {
  
   System.out.println("-------Download Start------");
   
   URL Url;
   byte[] buf;
   int byteRead;
   int byteWritten = 0;
   Url = new URL("http://ext.mobigo.co.kr/freet.json.php");
   outStream = new BufferedOutputStream(new FileOutputStream(downloadDir + localFileName));
   
   uCon = Url.openConnection();
   is = uCon.getInputStream();
   buf = new byte[size];
   while ((byteRead = is.read(buf)) != -1)
   {
    outStream.write(buf, 0, byteRead);
    byteWritten += byteRead;
   }
   System.out.println("Download Successfully.");
   System.out.println("File name : " + localFileName);
   System.out.println("of bytes  : " + byteWritten);
   System.out.println("-------Download End--------");

  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
  finally
  {
   try
   {
    is.close();
    outStream.close();
   }
   catch (IOException e)
   {
    e.printStackTrace();
   }
  }
 }

 /**
 *
 * @param fileAddress
 * @param downloadDir
 */
 public static void fileUrlDownload(String fileAddress, String downloadDir)
 {

  int slashIndex = fileAddress.lastIndexOf('/');
  int periodIndex = fileAddress.lastIndexOf('.');
  
  // 파일 어드레스에서 마지막에 있는 파일이름을 취득
  String fileName = fileAddress.substring(slashIndex + 1);
  
  if (periodIndex >= 1 && slashIndex >= 0 && slashIndex < fileAddress.length() - 1)
  {
   fileUrlReadAndDownload(fileAddress, fileName, downloadDir);
  }
  else
  {
   System.err.println("path or file name NG.");
  }
 }

 /**
 * main
 *
 * @param args
 */
 public static void main(String[] args)
 {
  // 파일 어드레스
  String url = "http://ext.mobigo.co.kr/freet.json";  //freet.json의 파일 이름으로 저장된다
  // 다운로드 디렉토리
  String downDir = "/data4/rcpro/mobigo/";
  
  // 다운로드 호출
  fileUrlDownload(url, downDir);
 }
}


 

'개발 > 코딩' 카테고리의 다른 글

JSP 드래그, 오른쪽 클릭 막기  (0) 2017.01.25
메뉴 클릭하면 이미지 변경  (0) 2016.03.21
JSON 파싱 사용하기  (0) 2015.03.12
session을 통해 값넘기기  (0) 2014.06.11
request.getParameter로 값 넘기기  (0) 2014.06.11