본문 바로가기

입출력

자바 네트워크(Network) - 소켓(Socket)동작의 원리 이전에 한것은 네트워크 프로그래밍을 사용할때 자주 사용하는 유틸성 클래스를 살펴 봤다. TCP/IP방식의 기본적인 동작 방식은 아래 그림과 같다. TCP/IP에서 서버에서는 클라이언트 요청을 받아서 데이터 처리를 하는데 우선 서버는 클라이언트 요청을 받아 들이는 소켓이 있다. 일명 서버 소켓 클라이언트에서 소켓생성해서 서버로 접속하면 이를 받는 역할을 하는 소켓이 있는데 이후 곧바로 서버내 다른 소켓으로 자신이 받은 요청을 넘긴다. 그래야 수많은 클라이언트 요청이 을 서버에서 받아 들일수 있다. 소스를 보면 소켓이 두개 생성이 되어 있다면 그건 서버용 프로그램이고 하나면 클라이언트 프로그램이라고 생각하면 된다. 정리하면 서버는 최소한 두개의 소켓이 있어야 한다. ServerSocket과 이를 할당 받을 .. 더보기
JAVA I/O (자바입출력) - CharacterStream 문자 스트림을 살펴보자. 실제 내부적으로는 바이트 스트림 방식으로 작동하지만 사용자 입장에서 문자 처리를 편하게 위해서 만들어 졌다. 우선 바이트스트림으로 쓸때 한글은 2바이트이기 때문에 깨져 보였는데 문자스트림을 쓰면 안깨지고 쓸 수 있다. reader와 writer를 잘 생각해보자. 예제를 살펴보자. 다른것 없다. 바이트 스트림으로 구현했던것을 문자 스트림으로 바꾸기만 하면 된다. 그러기 위해서는 InputStreamReader와 BufferedReader를 사용하자. 이는 스트림을 문자로 바꿔주는 역할을 한다. 그리고 예제를 보면 두가지 타입이 있다 InputStreamReader는 한글자씩 읽고 찍는다. BufferedReader는 한꺼번에 찍는다. 결과값을 보면 한글이 안깨지는것을 볼수 있다. 더보기
JAVA I/O (자바입출력) - FileInputStream 과 FileOutputStream FileInputStream 과 FileOutputStream은 둘다 InputStream과 OutputStream의 서브 클래스이다. 이 두 클래스는 이름 그대로 파일의 출력과 입력에 관한 클래스이다. 내용은 간단하다. 간단한 예제로 끝내자 1.FileInputStream 2. FileOutputStream 아큐먼트로 넣어준 주소로 가면 test.txt가 생성되있고 열어보면 입력한 값이 있다. 끝. 더보기
JAVA I/O (자바입출력) - 자바 스트림(Stream) A. 스트림이란 1. 스트림(Stream)은 파일이나 키보드, 모니터 등의 입출력 장치나 네트워크, 메모리등으로부터 데이터를 입출력할 때 사용하는 처리를 정의해 둔 것 2. 스트림이라는 영어 어원처럼 (시냇물) 양방향이 아니고 단방향이다. 데이터 처리가 많을때는 지연 될 수도 있다. B. Stream의 종류 1. 바이트 스트림(byte stream) - 1바이트씩 전송 * 존재 이유 : 컴퓨터는 2진수로 데이터 처리, 진수라는것은 bit를 의미 8bit가 1byte이므로 바이트 스트림 존재 * 주로 하드웨어 접근 할때는 바이트 스트림으로 처리 * 가장 큰 부모 클래스(추상) : InputStream, OutputStream 2. 캐릭터 스트림(character stream) - 2바이트씩 전송 * 문자 .. 더보기