//다음 로고 출력,파일 생성
package ex01_web;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class Ex03_01_Binary_InputStream {
public static void main(String[] args) {
//웹상의 바이너리 파일 읽기
//접속할 주소
String spec = "https://t1.daumcdn.net/daumtop_chanel/op/20200723055344399.png";
//URL 객체선언
URL url =null;
//HttpURLConnection 객체 선언
HttpsURLConnection con =null;
//입력스트림 선언 (다음 로고 이미지를 읽는 스트림)
BufferedInputStream bin=null;
//출력스트림 선언(C:/ storage/daum.png 파일을 만드는 스트림)
BufferedOutputStream bout =null;
try {
//URL 객체 생성
url=new URL(spec);
//HttpURLConnection 객체 생성
con=(HttpsURLConnection)url.openConnection();
//입력 스트림 생성
bin= new BufferedInputStream(con.getInputStream());
//출력할 파일 File 객체 생성
File dir =new File("C:/storage");
if(dir.exists()==false)
{
dir.mkdirs();
}
String contentType=con.getContentType();
String exName=contentType.substring(contentType.indexOf("/")+1);
String fileName="daum."+exName;
File file =new File(dir,fileName);
//출력스트림 생성
bout=new BufferedOutputStream(new FileOutputStream(file));
//읽은 데이터를 저장할 바이트 배열
byte[] b=new byte[1024];//1KB씩 읽기
//실제로 읽은 바이트 수
int readByte=0;
//읽기(다음 로고 이미지를 byte[] b 에 저장하기)
//쓰기(byte[] b 의 내용을 daum.png 파일로 보내기)
while((readByte=bin.read(b))!=-1)
{
bout.write(b,0,readByte);
}
//확인 메시지
System.out.println(fileName +"파일 생성 완료(다운로드 완료)");
} catch (MalformedURLException e) {
System.out.println("url 주소 오류");
}
catch (IOException e) {
System.out.println("url 접속 오류");
}
finally {
try {
if(bout!=null)bout.close();
if(bin!=null)bin.close();
if(con!=null)con.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
//역순으로 닫기
}
}
//구글 로고 출력,파일 생성
package ex01_web;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;
public class Ex03_02 {
public static void main(String[] args) {
//url 주소
String spec="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png";
//url객체 선언
URL url =null;
//httpconnection 선언
HttpsURLConnection con =null;
//입력 스트림 선언
BufferedInputStream bin =null;
//출력 스트림 선언
BufferedOutputStream bout=null;
try {
//url 객체 생성
url =new URL(spec);
//접속 설정
con=(HttpsURLConnection)url.openConnection();
//입력 스트림 생성
bin=new BufferedInputStream(con.getInputStream());
String contentType=con.getContentType();
String extName=contentType.substring(contentType.indexOf("/")+1);
String fileName="num1."+extName;
//파일 생성할 경로
File dir =new File("C:/storage");
//파일 객체 생성
File file =new File(dir,fileName);
//출력 스트림 생성
bout=new BufferedOutputStream(new FileOutputStream(file));
//한번에 얼마나 읽어들일래
byte[]b= new byte[1024];
//실제로 읽어들인 byte
int readByte=0;
while((readByte=bin.read(b))!=-1){
bout.write(b,0,readByte);
}
System.out.println(fileName+"파일 생성 완료");
}
catch (MalformedURLException e) {
System.out.println("URL 주소오류");
}
catch (IOException e) {
System.out.println("URL 접속오류");
}finally {
try {
if(bout!=null)bout.close();
if(bin!=null)bin.close();
if(con!=null)con.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
'JAVA > Network' 카테고리의 다른 글
Encoder,Decoder (0) | 2023.08.17 |
---|---|
TextReader (0) | 2023.08.17 |
HttpURLConnection (0) | 2023.08.17 |
URL (0) | 2023.08.17 |
날씨정보 URL 을 파일로 변환하여 원하는 디렉터리에 저장하기 (0) | 2023.08.06 |