-
2022-07-29 : JAVA & SpringTIL ( Today I Learned ) 2022. 7. 29. 17:01
1. StringBuffer
: 문자열을 추가하거나 변경할 때 주로 사용하는 자료형
2. BufferedReader / BufferWriter
: 버퍼를 이용해서 읽고 쓰는 함수, 이 함수는 버퍼를 이용하기 때문에 이 함수를 이용하면 입출력의 효율이 많이 좋아짐
- 버퍼 ( buffer )
ㆍ데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역
ㆍ입출력 속도 향상을 위해 버퍼를 사용
- 버퍼 플러시 ( buffer flush )
ㆍ버퍼에 남아있는 데이터를 출력 시킴 ( 버퍼를 비우는 동작 )
- 버퍼를 이용한 입력 : BufferedReader
ㆍscanner에 비해 빠르지만 데이터 가공이 필요
- 버퍼를 이용한 출력 : BufferedWriter
ㆍ콘솔 출력 함수같은 기능, 버퍼를 이용하기에 성능이 좋다.
참고 자료 : https://jhnyang.tistory.com/92
3. locale 클래스
: 지역의 언어, 나라 등의 정보를 담고 있는 클래스
4. GregorianCalendar 클래스
: 날짜 세팅 클래스
5. 사이트 데이터 읽기
: 사이트 데이터를 읽는다는 것은 특정 URL을 입력하였을 때, HTML, JSON, XML, OpenAPI 등의 데이터를 읽어 들인다는 것을 의미한다
1. openStream
: 자바에서 기본적으로 제공하는 URL 객체에는 openStream이라는 하위 메소드를 가지고 있다. 이 메소드를 호출하게 되면, 매우 쉽게 사이트의 정보를 읽어들일 수 있다
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; public class main { public static void main(String[] args) throws Exception { String url = "https://www.oraccle.com/index.html"; urlOpenStream(url); } public static void urlOpenStream(String _url) throws Exception { URL oracle = new URL(_url); BufferedReader in = new BufferedReader( neww InputStreamReader(oracle.openStream(), "UTF8")); String inputLine; while (inputLine = in.readLine()) != null) System.out.println(inputLine); in.close; } }
- URL만 가지고, InputStreamReader에 스트림을 보내서 처리하는 것을 볼 수 있다. 이런 방식은 심플하지만, 커넥션의 문제등이 발생하는 등의 여러가지 설정을 추가로 할 수 없기 때문에 잘 쓰이지는 않는다.
2. HttpURLConnection
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class main { public static void main(String[] args) throws Exception { String url = "https://www.oracle.com/index.html"; urlConnection(url); } public static void urlConnection(String _url) throws Exception { URL url = null; BufferedReader reader = null; url = new URL(_url); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setReadTimeout(1000); con.connect(); reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8")); String inputLine = null; while ((inputLine = reader.readLine()) != null { System.out.println(inputLine); } reader.close(); } }
- HttpURLConnection을 사용하게 되면, 다양한 옵션 등을 설정할 수 있게 된다. GET, POST 설정이라든지 Timeout 설정부터 UserAgent 설정등을 사용하여, 보다 사용자가 원하는 형태로 구현할 수 있게 한다.
URL 클래스
- URL 클래스는 URL을 추상화하여 만든 클래스
- URL 클래스는 final 클래스로 되어있기에 상속 X
- 모든 생성자는 MalformedURLException 예외를 발생하기 때문에 반드시 예외처리
URLConnection 클래스
- 원격 자원에 접근하는데 필요한 정보를 가지고 있다.
- 필요한 정보란 원격 서버의 헤더 정보, 해당 자원의 길이와 타입 정보, 언어 등을 얻을 수 있다
- URL 클래스는 원격 서버 자원의 결과만을 가져 오지만, URLConnection 클래스는 원격 서버 자원의 결과와 원격 서버의 헤더 정보를 가져 올 수 있다.
참고자료 : https://vividev.tistory.com/44
'TIL ( Today I Learned )' 카테고리의 다른 글
2022-08-02 : JAVA (0) 2022.08.02 2022-08-01 : webpack & React (0) 2022.08.01 2022-07-28 : Spring (0) 2022.07.28 2022-07-27 : 파일업로드 & buffer, 기타 등등 (0) 2022.07.27 2022-07-26 : Git (0) 2022.07.26