import java.net.*;
import java.io.*;
import static java.lang.System.out;
class URLTest1
{
public static void main(String[] args)
{
try{
URL url=new URL(args[0]);
// 명령줄 인수로 완전한 형태 - http://www.naver.com
// ftp://ftp.kaist.ac.kr/pub/
// http://www.kbs.co.kr
// file:///c:\myjava\test.html
out.println("Protocol:" +url.getProtocol());
out.println("Host :" +url.getHost());
out.println("Port :" +url.getPort());
out.println("File :" +url.getFile());
//포트가 -1을 반환하는 경우가 있는데, 이것은 -1번으로 url접속을 시도하는 것이 아니라
//프로토콜에 해당하는 디폴트 포트로 접속이 일어난다는 점을 의미
InputStream is = url.openStream();
//openStream()메소드를 이용하면 URL이 위치한 곳과 자동으로 접속이 일어나고,
// 결과로 InputStream이 반환된다.
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String contents="";
while((contents=br.readLine()) !=null) {
out.println(contents);
}
br.close();
is.close();
}catch(Exception e) {
e.printStackTrace();
}
}//main()---------
}//////////////////////////////////////////////////////////////////
import java.net.*;
import java.io.*;
//이미지 파일을 읽어 파일로 저장.
class URLTest2
{
public static void main(String[] args) throws MalformedURLException, IOException
{
String urlStr="http://s~~~90151.jpg";
URL url = new URL(urlStr);
// 스트림 얻어서 파일로 저장하자. myimg.jpg
InputStream is = url.openStream();
BufferedInputStream bis = new BufferedInputStream(is);
FileOutputStream fos = new FileOutputStream("myimg.jpg");
byte ba[] = new byte[1024];
int n = 0;
int count=0;
URLConnection uc=url.openConnection();
int fileSize=uc.getContentLength();
System.out.println("파일크기:"+fileSize);
System.out.println("컨텐트 타입: "+uc.getContentType());
while((n=bis.read(ba)) !=-1) {
fos.write(ba,0,n);
count += n;
fos.flush();
System.out.print(((count*100) /fileSize)+"%");
}
fos.close();
bis.close();
is.close();
}
}////////////////////////////////////////////////////////