try 구문 밖에서 사용할 스트림 객체 참조변수 선언 

try 구문 안에서 스트림 객체 생성 및 사용(읽기,쓰기) 

finally 구문안에서 사용한 스트림 close


InputStream

read()

read(byte[] b)

read(byte[] b, int off, int length)


OutputStream

write(int a)

write(byte[] a)

write(byte[] b, int off, int length)



import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;


public class FileReaderTest {

public static void main(String[] args) {

BufferedReader in = null;

BufferedWriter out = null;

try{

out = new BufferedWriter(new FileWriter("data.txt"));

out.write("꿈에 미치면 신화가 된다");

out.append(".");

out.flush();

in = new BufferedReader(new FileReader("data.txt"));

// int c;

// while( (c = in.read()) != -1)

// System.out.print((char) c);

String msg = null;

while ((msg = in.readLine()) != null)

System.out.println(msg);

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (in != null)

in.close();

if (out != null)

out.close();

} catch (IOException e) {

e.printStackTrace();

}}}}




보조 스트림


문자 변환 보조 스트림

바이트스트림 -> InputStreamReader -> 문자스트림

문자스트림 -> OutputStreamWriter -> 바이트스트림




import java.io.BufferedReader;//import java.io.BufferedWriter; //import java.io.FileInputStream;

import java.io.FileReader; //import java.io.FileWriter; //import java.io.IOException;

import java.io.InputStreamReader; //import java.util.Scanner;


public class Test {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

// BufferedReader in = null;

BufferedWriter writer = null;


try {

writer = new BufferedWriter(new FileWriter("log.txt"));// 스트림 객체 생성


while (true) {

System.out.println("기록할 내용을 입력 : ");

String msg = scan.nextLine();

if (msg.equals("quit"))

break;

writer.write(msg + "\n");// 이 코드를 사용자가 quit를 입력할때까지 반복

}

writer.flush();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (writer != null)

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}



·서버(Server): 사용자들에게 서비스를 제공하는 컴퓨터

·클라이언트(Client): 서버에게 서비스를 요청해서 사용하는 컴퓨터

·DNS(Domain Name System): 숫자 대신 기호를 사용하는 주소
·DNS 서버: 기호 주소를 숫자 주소가 변환해주는 서버
·URL(Uniform Resource Locator): 인터넷 상의 자원을 나타내는 약속

·포트(port): 가상적인 통신 선로
*데이터를 받는 쪽은 포트를 열고 대기 // <- 프로그램이 OS로부터 포트를 점유 
 데이터를 보내는 쪽은 상대방의 IP,port를 목적지로 데이터를 전달 // IP,port<- 데이터를 송수신하기 위한 정보의 집합(Socket)
 자바에서 ip는 InetAddress라는 타입의 자료형으로 분리

·프로토콜(protocol): 통신을 하기 위한 약속

·TCP(Transmission Control Protocol)는 신뢰성있게 통신하기 위하여 먼저 서로 간에 연결을 설정한 후에 데이터를 보내고 받는 방식
·UDP(User Datagram Protoocol)는 데이터를 몇 개의 고정 길이의 패킷(다이어그램이라고 불린다)으로 분할하여 전송





import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;


public class UdpSender {

public static void main(String[] args) {

try {

InetAddress ip = InetAddress.getByName("70.12.109.114");

//UDP전송 순서 // 소켓 생성 // 보낼 데이터를 바이트 배열로 준비 

//준비한 바이트 배열을 목적지 주소와 목적지 포트 번호를 포함해 패킷으로 준비

//소켓을 통해 패킷 전송

DatagramSocket socket = new DatagramSocket();

//데이터를 받고자 할때는 소켓 생성자에 사용할 포트번호 기재

//보내기만 할때는 안써도 됨//안쓰면 내부적 임시포트 받아씀

String msg = "안녕 UDP로 데이터를 보내는거야";

byte[] buf = msg.getBytes();

DatagramPacket packet = new DatagramPacket(buf,buf.length,ip,5000);

socket.send(packet);

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (SocketException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}



import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import java.net.SocketException;

//UDP데이터 수신하기

//수신할 포트를 적어서 소켓 생성

//수신할 데이터가 저장될 빈 바이트 배열을 준비

//수신할 데이터가 저장될 빈 패킷을 위 배열과 연결해서 준비

//소켓에 준비한 빈 패킷을 담아 수신

public class UdpReceiver {

public static void main(String[] args) {
try{
DatagramSocket socket = new DatagramSocket(5000);

byte[] buf = new byte[512];

DatagramPacket packet = new DatagramPacket(buf,buf.length);

System.out.println("수신을 기다리는중......");

socket.receive(packet);

System.out.println("수신완료");

System.out.println(new String(buf));

}catch(SocketException e){

e.printStackTrace();

}catch(IOException e){

e.printStackTrace();
}
}

}



SVN(subversion) : 프로젝트 협업 관리 도구

' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day23 TCP  (0) 2016.04.18
Day22 TCP  (0) 2016.04.12
Day20 입출력  (0) 2016.04.08
Day19 스레드  (0) 2016.04.07
Day18 예외처리  (0) 2016.04.06

+ Recent posts