URL 클래스 / URLConnetion(특정 서버의 정보와 파일 내용을 가져와 출력)

조수경·2021년 11월 18일
0

고급자바

목록 보기
49/97

URL 클래스

package kr.or.didt.basic;

import java.net.MalformedURLException;
import java.net.URL;

public class URLTest01 {

	public static void main(String[] args) throws MalformedURLException {

		//URL 클래스 ==> 인터넷에 존재하는 서버들의 자원에 접근할 수 
		//             있는 주소를 다루는 클래스
		
		//http://www.ddit.or.kr:80/index.html?ttt=123
		
		URL url = new URL("http", "ddit.or.kr", 80, "index.html?ttt=123");
		
		System.out.println("Protocol : " + url.getProtocol());
		System.out.println("Host : " + url.getHost());
		System.out.println("Port : " + url.getPort());
		System.out.println("File : " + url.getFile());
		System.out.println("Path : " + url.getPath());
		System.out.println("Qurey : " + url.getQuery());
		System.out.println();
		
		System.out.println(url.toExternalForm());//전체 경로 출력
		
	}

}

URLConnetion

package kr.or.didt.basic;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;



public class URLTest02 {

	public static void main(String[] args) throws IOException {

		//URLConnetion ==> 애플리케이션과 URL간의 통신 연결을 위한 클래스
		
		//특정 서버의 정보와 파일 내용을 가져와 출력하는 예제
		
		//URL url = new URL("http://www.naver.com/index.html");
		URL url = new URL("https://www.naver.com");
		
		// URLConnetion객체 구하기
		URLConnection urlCon = url.openConnection();
		
		//Header 정보 가져오기
		Map<String, List<String>> headerMap = urlCon.getHeaderFields();
		for(String headerKey : headerMap.keySet()){
			System.out.println(headerKey + " : " +headerMap.get(headerKey));
		}
		
		System.out.println("----------------------------------------------");
		
		// 해당 문서의 내용을 가져와 화면에 출력하기
		// (index.html 문서 내용 가져오기)
		
		/*//방법1 ==> URLConnection 객체를 이용하는 방법
        //파일을 읽어오기 위한 스트림 객체 생성
		InputStream is = urlCon.getInputStream();
		InputStreamReader isr = new InputStreamReader(is, "utf-8");
		BufferedReader br = new BufferedReader(isr);
		
		//자료를 읽어와 출력하기
		while(true){
			String str = br.readLine(); //한 줄씩 읽기
			if(str==null){ //더 이상 읽어올 데이터가 없다.
				break;
			}
			
			System.out.println(str);
		}
		br.close(); //스트림 닫기
*/		
		//방법2 ==> URL객체를 이용해서 스트림 객체를 구한다.
		//URL객체의 openStream()메서드 이용
		
		InputStream is2 = url.openStream();
		BufferedReader br2 = new BufferedReader(
				new InputStreamReader(is2, "utf-8")
				);
		
		while(true){
			String str = br2.readLine(); //한 줄씩 읽기
			if(str==null){ //더 이상 읽어올 데이터가 없다.
				break;
			}
			
			System.out.println(str);
		}
		br2.close(); //스트림 닫기
	}

}
profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보