<접근지정자>

 

 

 

public : 공용( 어디서든지 접근 가능하다)


default : 같은 package 내에서만 접근가능 


private : 자기 클래스에서만 찾을 수 있다 데이터롬복(게터세터)로 연결해야한다.


protected : 같은 패키지 내에서 접근 가능하고 다른 패키지에서도 상속을 받은 클래스 내부에서는 사용 가능하다.
자식클래스를 new 해서 찾을 수 있다.

 

 

 

 


 

 

 

<입출력>

 

 

 

- 스트림 입출력 : 버퍼를 가지고 순차적으로 이루어지는 입출력

 

- 스트림 : 응용프로그램과 입출력 장치를 연결하여 소프트웨어 모듈 / 논리적이다.

입력스크림 : 입력 장치로부터 자바 프로그램으로 데이터를 전달(input)

출력 스트림 : 출력 장치로 데이터 출력 (ex. 모니터로 출력 system.out)

 

* 데이터가 출발할때 트래픽에 따라 경로를 다르게 설정한다. 그렇기 때문에 논리적!

 

- 스트림은 단방향이다 : 입력과 출력을 동시에 하는 스트림은 없다.

 

- 보레이트 : 특정 시간을 쪼개서 보레이트 단위별로 데이터를 받는다 

이 경우 1,1 혹은 0,0과 같은 연속된 데이터를 받을 수 있다.

 

I/O : input, output

 

 

- JDK의 바이트 스트림 클래스 계층 구조

 

 

 

 

 

* 키보드에 연결된 byte stream : in , type : input stream

모니터로 output을 원하면 system.out 하면 됨, type : output

 

 

- 여기 있는 in : 스트림에 연결된 레퍼런스 변수

InputStream 은 문자를 받을 수 없다. byte로(정수) 받음

* System.out.println(data) : 스캐너랑 똑같기 때문에 실행 후 값을 입력하면 출력함 

 

 

- input stream : int 값을 받는다 (캐스팅)

단점 : 1개만 받을 수 있다.

 

 

package ch08;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

// 문자로 읽고 싶음 
// 한개 이상을 받고 싶음
// 중간과정으로 쓸 일은 거의 없음 
public class InputEx02 {

	public static void main(String[] args) {
		InputStream in = System.in;
		
		InputStreamReader reader = new InputStreamReader(in);
		
		char[] data = new char[2];
		try {
			reader.read(data);
			System.out.println(data);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 

 

- InputStreamReader : 문자를 1개이상 받을 수 있다 

* InputStream을 보완해서 만들어졌다.

 

reader.read(data) : 리턴 안 받아도 된다.

 

new char에서 공간을 2를 주었기 때문에 문자를 3개 입력하면 2개만 출력된다.

(가변적이지 못 한것이 단점이다)

 

 

 

- Buffer : 해야될 일과를 정해놓은 것 

기억공간을 지정해 놓은 것 / 통신할 때 데이터가 꽉 차지 않으면 전송이 되지 않는다. -> flush 해서 강제로 보낼 수 있음 

+ 일과가 추가되면 버퍼링이 걸림 / 대기열에 놨다가 해야될 일과를 하고나면 한 만큼 추가됨 

 

 

http://tcpschool.com/cpp/cpp_io_streamBuffer

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

참고!

 

 

 

package ch08;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class InputEx03 {

	public static void main(String[] args) {
		InputStream in = System.in;
		InputStreamReader reader = new InputStreamReader(in);

		BufferedReader br = new BufferedReader(reader);

		// 위 3개를 한줄로 적을 수 있음
		BufferedReader br2 = new BufferedReader(new InputStreamReader(in));

		String data = "";
		try {
			data = br2.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println(data);
	}

}

 

 

* Buffer 를 이용해서 작성 

통신할때 사용한다.

 

 

- readLine : buffer를 비울 때 사용한다

 

- 오류가 나면 데이터가 자동으로 초기화 되지 않기 때문에 내가 직접 초기화 한다.

 

 

 

- 자동으로 데이터를 읽고 비우는 작업을 하기 위해 코드를 수정한다.

 

package ch08;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class InputEx03 {

	public static void main(String[] args) {
		InputStream in = System.in;
		InputStreamReader reader = new InputStreamReader(in);

		BufferedReader br = new BufferedReader(reader);

		// 위 3개를 한줄로 적을 수 있음
		BufferedReader br2 = new BufferedReader(new InputStreamReader(in));

		String data = "";
		try {
			while ((data = br2.readLine()) != null) {
				System.out.println(data);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

openclose