전체 글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. 입출력 스트림 스트림 입출력- 스트림(Stream): 연속적인 데이터의 흐름 or 데이터를 전송하는 소프트웨어 모듈- 자바에서 입출력 스트림은 응용프로그램과 입출력 장치를 연결- 응용프로그램은 입력 스트림과 연결- 입력 스트림은 키보드 장치를 제어하여 사용자의 키 입력을 받아 응용프로그램에 전달- 응용프로그램은 출력 스트림과 연결, 출력 스트림에 출력- 출력 스트림은 다른 끝에 연결된 출력 장치를 제어하여 출력 완성 >>자바 응용프로그램은 입출력 장치를 직접 제어하는 대신 입출력 스트림 객체와 연결하여 데이터 입출력을 쉽게 실행스트림을 사용하지 않고 자바 응용프로그램이 입출력 장치를 직접 제어했다면, 응용프로그램 작성과 다양한 입출력 장치 사용이 어려웠을 것입출력 스트림의 특징 1. 스트림의 양 끝에는 입출력 장치와 .. 2024. 6. 19. [명품자바] 6장 오픈챌린지 영문자 히스토그램 만들기 텍스트를 키보드로 입력알파벳이 아닌 문자는 제외하고 영문자 히스토그램으로대문자와 소문자는 모두 같은 것으로 취급세미콜론(;)만 있는 라인을 만나면 입력의 끝으로 간주 키보드로부터 텍스트를 입력받아 하나의 문자열로 리턴하는 코드는 다음 코드를 이용하라고 합니다String readString() { StringBuffer sb=new StringBuffer(); Scanner scanner=new Scanner(System.in); while(true) { String line=scanner.nextLine(); if(line.equals(";")) break; //';'만 있는 라인이면 입력 종료 sb.append(line); //읽은 문자열을 스트링버퍼에.. 2024. 6. 19. [명품자바] 5장 오픈챌린지 Bear의 Fish 먹기 게임 만들기 Bear와 Fish 객체10행 20열의 격자판에서 각각 정해진 규칙에 의해 이동Bear는 사용자의 키에 의해(wasd) 상하좌우로 한 칸씩 이동fish는 다섯 번 중 세 번은 제자리에 있고 나머지 두 번은 4가지 방향 중 랜덤한 방향으로 한 칸씩 이동Bear가 Fish를 먹으면(Fish의 위치로 이동하면) 종료 각 객체의 이동을 정의하는 move()와 각 객체의 모양을 정의하는 getShape()를 추상 메소드로 가진 다음의 추상 클래스 GameObject를 이용Bear와 Fish는 GameObject를 상속전체적인 게임을 진행하는 Game 클래스와 main() 메소드를 작성public abstract class GameObject { protected int dis.. 2024. 6. 19. [명품자바] 4장 오픈챌린지 끝말잇기 게임을 만들어보자 "아버지"로 시작n명의 참가자(n을 입력받아야 함)들은 순서대로 자신의 단어를 입력끝말이 틀린 경우 게임을 끝내고 패배한 참가자를 출력main()을 포함하는 WordGameApp 클래스와 각 선수를 나타내는 Player 클래스 작성WordGameApp 객체 하나와 선수 숫자만큼의 Player 객체 생성 WordGameApp 클래스에 생성자, main(), 게임을 진행하는 run() 메소드Player 클래스는 게임 참가자의 이름 필드와 사용자로부터 단어를 입력받는 gewWordFromUser() 메소드, 끝말잇기 성공여부와 게임을 계속하는지 판별하는 checkSuccess() 메소드 Player 클래스import java.util.Scanner;public class Player.. 2024. 6. 19. 이전 1 ··· 13 14 15 16 17 18 19 ··· 22 다음