inputStream => read /내용물을 빨아드린다
outputStream => write / 내용물을 쓴다 (복사)
socket에는 TCP를보면 2가지 메서드가 있다
1. getInputStream()
2. getOutputStream()
네트워크는 이것에서 URL로 바뀌는것이다
URL ->in ->out
다운로드 받으려면
1. 대상 URL을 결정 ->GET방식(이미지같은경우 대부분 GET방식이다) ->브라우저에서 확인 가능하면 좋다.
2. URL 객체를 생성해야한다. ->getInputStream(), openStream등을 하면 InputStream을 얻어온다.
3. OutputStream구하기 -> 대표적으로 FileOutputStream
4. 읽고 쓰기를 한다. -> Files.copy( ) 기능을 하면 수월하게 복사가 가능하다.
URL을 주면 헤더는 빠지고 바디메세지만 온다
@Test
public void testSave() throws Exception{
//실제 이미지 경로
String path = "https://thumbnail9.coupangcdn.com/thumbnails/remote/230x230ex/image/retail/images/81447876542865-b2de1636-9d42-4236-be96-aad9ff331eb2.jpg";
URL url = new URL(path);
//read
InputStream in = url.openStream();
//write
File fos = new File("C:\\zz\\sample.jpg");
//copy
Files.copy(in, fos.toPath());
}
인텔리j에서 파일인코딩이 깨진다면
Edit custom VM options를 열어
-Dfile.encoding=UTF-8을 입력해주고 재시작하면 JVM에서 자동으로 UTF-8로 해준다.
'송파구청 특강 (2021-06 ~ 2021-07) > SpringBoot' 카테고리의 다른 글
| 강의6 (0) | 2021.06.28 |
|---|---|
| 강의5 (0) | 2021.06.28 |
| 강의4 (0) | 2021.06.28 |
| 강의2 (0) | 2021.06.28 |
| 강의1 (0) | 2021.06.28 |