URL 읽어오기

Programming/Java 2015. 12. 14. 14:01





반응형

개발을 하다보면 의도치 않게 다른 사이트의 URL 을 호출하여 해당 페이지의 내용을 읽어와야 할 경우가 있다.
특정 사이트의 URL을 파싱하여 데이터를 긁어모으는 등과 같은 방법으로도 이용할 수 있는데,
이부분은 엄연한 불법이므로 시도하지 말자.

나같은 경우 서로 다른 도메인간에 API(xml, json) 호출을 Ajax를 통해 할때 해당 방법을 이용한다.
왜 그래야 하는지는 조만간 포스팅 하도록 하겠다.


다른 도메인의 URL을 호출하는것은 java의 URL, URLConnection 객체의 사용으로 가능하다.
해당 객체를 이용하면 URL의 있는 HTML과 같은 태그 내용을 읽을 수 있는데,
리눅스에서 외부 페이지를 다운받는 wget 과 비슷하다.

wget 명령어는 해당 URL 페이지를 시스템에 문서로 다운로드 받을수 있는 반면에,
java에서는 다운로드가 아닌 BufferReader에 저장을 한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;


public class URLReader {

	public static void main(String[] args) {

		
		StringBuffer sbuf = new StringBuffer();
		
		try {
			
			// URL 객체 생성
			URL url = new URL("http://www.naver.com");
			
			// URLConnection 생성
			URLConnection urlConn = url.openConnection();
			
			
			InputStream is = urlConn.getInputStream();
		    InputStreamReader isr = new InputStreamReader(is, "UTF-8");
		    BufferedReader br = new BufferedReader(isr);
		    
		    String str ;
		    while((str=br.readLine()) != null){
		    	
		    	sbuf.append(str + "\r\n") ;
		    	
		    }
		    
		    
		    // 콘솔에 출력하기
		    System.out.println(sbuf.toString()) ;
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		

	}

}
반응형



Posted by 궁극의 java개발자
,





반응형

디렉토리내 일정기간이 지난 파일을 삭제해 보자.

아래는 파일의 마지막 수정시간이 현재로부터 3일이 지난 파일을 삭제하는 예제이다.



// Calendar 객체 생성
Calendar cal = Calendar.getInstance() ;
long todayMil = cal.getTimeInMillis() ;		// 현재 시간(밀리 세컨드)
long oneDayMil = 24*60*60*1000 ;			// 일 단위

Calendar fileCal = Calendar.getInstance() ;
Date fileDate = null ;


File path = new File("C:\test\") ;
File[] list = path.listFiles() ;			// 파일 리스트 가져오기


for(int j=0 ; j < list.length; j++){
					
					
	// 파일의 마지막 수정시간 가져오기
	fileDate = new Date(list[j].lastModified()) ;
	
	// 현재시간과 파일 수정시간 시간차 계산(단위 : 밀리 세컨드)
	fileCal.setTime(fileDate);
	long diffMil = todayMil - fileCal.getTimeInMillis() ;
	
	//날짜로 계산
	int diffDay = (int)(diffMil/oneDayMil) ;

	
	// 3일이 지난 파일 삭제
	if(diffDay > 3 && list[j].exists()){
		list[j].delete() ;
		System.out.println(list[j].getName() + " 파일을 삭제했습니다.");
	}
	
}

반응형

'Programming > Java' 카테고리의 다른 글

텍스트 파일 생성 (FileWriter, BufferedWriter)  (0) 2015.12.15
URL 읽어오기  (0) 2015.12.14
디렉토리내 특정 파일 리스트 출력  (0) 2015.12.14
[Java]특정날짜 요일 구하기  (0) 2015.12.14
날짜 구하기  (0) 2015.12.11



Posted by 궁극의 java개발자
,





반응형

디렉토리에서 파일이름이 특정 패턴으로 된 파일들 찾아내기

File path = new File("C:\test\"); final String fatternName = "TEMP" ; String fileList[] = path.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.startsWith(fatternName); // TEMP로 시작하는 파일들만 return } }); // 파일리스트 출력 if(fileList.length > 0){ for(int i=0; i < fileList.length; i++){ System.out.println(fileList[i]) ; } }

Tip) 디렉토리의 파일 전체 목록을 가져오는것은 아래와 같이도 가능하다.

File path = new File("C:\test\") ;
File[] list = path.listFiles() ;

 

반응형

'Programming > Java' 카테고리의 다른 글

URL 읽어오기  (0) 2015.12.14
디렉토리내 일정기간 지난 파일 삭제  (0) 2015.12.14
[Java]특정날짜 요일 구하기  (0) 2015.12.14
날짜 구하기  (0) 2015.12.11
MD5방식 암호화  (0) 2015.12.11



Posted by 궁극의 java개발자
,





반응형

일을 하다보면 자주는 아니지만 가끔씩 특정날짜에 대한 요일을 알아내야 할 경우가 생긴다.

Java에 있는 Calendar 객체를 사용하면 아주아주 쉽게 구현이 가능하다.


Calendar.DAY_OF_WEEK 를 사용하면 해당 날짜에 대한 요일이 숫자로 리턴되는데,

일요일부터 토요일까지 1부터 시작해서 순차적으로 나타낸다.


아래 예제는 날짜와, 날짜 형식(yyyy-MM-dd)을 받아 해당 요일을 한글로 리턴해주는 코드이다.


/**
 * 특정 날짜에 대하여 요일을 구함(일 ~ 토)
 * @param date
 * @param dateType
 * @return
 * @throws Exception
 */
public String getDateDay(String date, String dateType) throws Exception {

	
	String day = "" ;
	
	SimpleDateFormat dateFormat = new SimpleDateFormat(dateType) ;
	Date nDate = dateFormat.parse(date) ;
	
	Calendar cal = Calendar.getInstance() ;
	cal.setTime(nDate);
	
	int dayNum = cal.get(Calendar.DAY_OF_WEEK) ;
	
	
	
	switch(dayNum){
		case 1:
			day = "일";
			break ;
		case 2:
			day = "월";
			break ;
		case 3:
			day = "화";
			break ;
		case 4:
			day = "수";
			break ;
		case 5:
			day = "목";
			break ;
		case 6:
			day = "금";
			break ;
		case 7:
			day = "토";
			break ;
			
	}
	
	
	
	return day ;
}


 


나같은 경우 공통 클래스에 해당 메소드를 추가하여 필요시마다 호출하여 사용한다.

반응형

'Programming > Java' 카테고리의 다른 글

URL 읽어오기  (0) 2015.12.14
디렉토리내 일정기간 지난 파일 삭제  (0) 2015.12.14
디렉토리내 특정 파일 리스트 출력  (0) 2015.12.14
날짜 구하기  (0) 2015.12.11
MD5방식 암호화  (0) 2015.12.11



Posted by 궁극의 java개발자
,