본문 바로가기

분류 전체보기215

버퍼 입출력과 파일 입출력 버퍼 없이(unbuffered I/O 방식) 입출력을 처리하면 비효율적- 입출력 스트림은 운영체제 API를 호출하여 입출력 장치↔프로그램 데이터 전송- API가 자주 호출되고 입출력 횟수가 늘어나므로 시스템 효율과 실행 속도 저하>> 버퍼(buffer)를 사용해 효율적 작동 가능 버퍼- 데이터를 일시적으로 저장하기 위한 메모리 - 파일에 쓸 데이터를 버퍼에 모아 두었다가 한 번에 운영체제 API를 호출하여 작성- 운영체제 부담 감소, 시스템 효율 증가 버퍼 입출력- 입출력 스트림이 버퍼를 가지고 입출력을 처리하는 방식- 버퍼를 가지는 스트림을 버퍼 스트림(Buffered Stream)이라 함- 버퍼 입력 스트림: 입력 장치로부터 입력된 데이터를 버퍼에 모아서 프로그램으로 전송- 버퍼 출력 스트림: 프로그.. 2024. 6. 23.
바이트 스트림과 파일 입출력 바이트 스트림- 바이트 단위로 데이터가 흐르는 스트림- 바이너리 데이터를 있는 그대로 입출력- 이미지나 동영상 파일 입출력에 필수적 InputStream, OutputStream- 추상 클래스- 바이트 입출력 처리를 위한 공통 기능을 가진 슈퍼 클래스 FileInputStream, FileOutputStream- 파일 입출력을 위한 클래스- 파일로부터 바이너리 데이터를 읽거나 파일에 바이너리 데이터를 저장 DataInputStream, DataOutputStream- 기본 타입 값을 바이너리 형태로 입출력- 문자열을 바이너리 형태로 입출력FileOutputStream을 이용한 바이너리 파일 쓰기- 프로그램 내의 변수나 배열에 들어 있는 바이너리 값을 그대로 파일에 저장- 메모리에 있는 이미지 비트들을 그.. 2024. 6. 20.
[명품자바] 7장 오픈챌린지 영어 단어 뜻 맞추기 게임 영어 단어와 한글 단어로 구성되는 Word 클래스를 작성여러 개의 Word 객체를 Vector 컬렉션에 삽입이 중 랜덤하게 사용자에게 문제 출제벡터 내에 정답이 아닌 단어를  랜덤하게 3개 선택하고 정답과 함께 4개의 보기 출력-1 입력 시 종료 ex)painting?(1)그림 (2)감정 (3)아기 (4)오류>>  Word 클래스와 WordQuiz 클래스를 작성하고 WordQuiz 클래스에 main() 메소드WordQuiz 클래스에서 아래와 같이 벡터를 만들고 미리 여러 개의 Word 객체를 삽입하는 코드 작성Vector v=new Vector();v.add(new Word("love", "사랑"));v.add(new Word("animal", "동물")); Word 클래스pu.. 2024. 6. 20.
문자 스트림과 파일 입출력 문자 스트림 클래스- 문자 스트림은 2바이트의 유니코드 문자를 단위로 입출력- 문자화되지 않는 바이너리 정보(ex: 이미지)들은 문자 스트림 클래스에서 처리 불가※ 바이너리 코드: 컴퓨터가 이해할 수 있는 이진코드(0과 1로 구성)    바이트 코드: 가상 머신(VM)이 이해할 수 있는 이진코드  - 문자 입력 스트림은 바이트들을 전달받고 이 바이트들을 '로컬 문자 집합'에 있는 문자인지 비교하여 문자로 변환- 로컬 문자 집합에서 찾을 수 없는 경우 문자가 아니거나 문자 집합이 잘못 설정되어 있는 경우임 FileReader 생성자 FileReader, Reader, InputStreamReader의 공통 주요 메소드FileReader를 이용한 텍스트 파일 읽기 파일 입력 스트림 생성FileReader f.. 2024. 6. 19.
파이썬으로 가위치법 계산기 만들기(+오차 그래프 출력) numpy 사용하여 구현#가위치법 계산기#계산import mathfrom sympy import Symbol, sympifyx=Symbol('x')y=Symbol('y')pol=sympify(input('방정식 입력:'))xl=float(input('왼쪽 범위 입력:'))xu=float(input('오른쪽 범위 입력:'))es=float(input('오차 허용치 입력: '))iteration=0iteration_list=[]ea_list=[]xr_list=[]f_xl=pol.subs(x,xl)f_xu=pol.subs(x,xu)if f_xl*f_xu>0 : print('입력한 구간에는 해가 존재하지 않습니다.')elif f_xl==0: print('방정식',pol,'=0의 해는 ',xl,'입니다.. 2024. 6. 19.
파이썬으로 이분법 계산기 만들기(+오차 그래프 출력) numpy 사용하여 구현#이분법 계산기#계산import numpy as npimport mathfrom sympy import Symbol, sympifyx=Symbol('x')y=Symbol('y')pol=sympify(input('방정식 입력:'))xl=float(input('왼쪽 범위 입력:'))xu=float(input('오른쪽 범위 입력:'))es=float(input('오차 허용치 입력: '))xr=np.float64(xl) #xr초깃값ea=100 #ea초깃값iteration=0 #iteration 초깃값iteration_list = []xr_list = []ea_list = []f_xl=pol.subs(x,xl)f_xu=pol.subs(x,xu)if f_xl*f_xu>0 : .. 2024. 6. 19.