목록프로그래밍 언어/Java (2)
가희의자기개발블로그
백준 문제를 풀다가 입력방식때문에 시간초과에러가 발생해서 원인도 모르고 며칠을 고민했었다. 그 원인은 Scanner의 상대적으로 느린 입력처리 때문이였는데, 그 이유를 알아보자. 이 두 클래스는 모두 입력을 받기위한 클래스라는 점에서는 동일하다. 하지만, 사용방법이나 속도 면에서 차이점이 존재한다. BufferedReader는 InputStreamReader에 버퍼링 기능이 추가된 기능이라고 한다. 이게 뭔소리인가? InputStreamReader의 경우, 문자열을 Character단위로 불러들인다. 한글자씩 문자열을 불러들이기 때문에 굉장히 비효율적이기 때문에 이를 보완하고자 BufferedReader 기능이 추가된것이다. BufferedReader는 사용자가 요청할 때마다 데이터를 읽어 오는 것이 아..
직접 키보드를 통하여 입력하는 데이터는 대개 임시 자료인 경우가 많다. 중요한 자료는 대부분 데이터베이스에 저장되어 있거나 파일 시스템에 저장된다. FileInputStream과 FileOutputStream은 바이트 단위로 파일을 통한 입출력을 처리한다. 1.FileInputStream FileInputStream 클래스는 InputStream 클래스를 상속받은 후손 클래스로 하드 디스크상에 존재하는 파일로부터 바이트 단위의 입력을 받는 클래스이다. 이 클래스는 출발 지점과 도착 지점을 연결하는 통로, 즉 스트림을 생성하는 클래스이다. 생성자의 인자로는 File 객체를 주거나 파일의 이름을 직접 String 형태로 줄 수 있다. 일반적으로 파일의 이름을 String 형태로 주는 경우가 많은데 파일이 존..