Scanner를 그만 쓰고 BufferReader/BufferedWriter를 사용하자
·
JAVA
[Scanner의 장단점]그동안은 아주 간단하게 Scanner 클래스를 이용해서 입력을 받고 출력을 하는 형태를 자주 써 왔다. Scanner의 큰 장점은 지원하는 메서드가 많아서 String, int, double, float, boolean 등등 원하는 타입에 맞춰서 메서드를 바꿔 주기만 하면 사용이 가능했다. 하지만 단점은 버퍼 사이즈가 1024char 이라 많은 입력을 필요로 할 경우에는 성능 상 좋은 결과를 얻을 수 없다. 알고리즘을 풀면서 시간초과 같은 문제를 직면하게 되는 이유이다.  [Scanner 와 BufferReader 의 성능 차이]BufferedReader가 Scanner보다 성능이 좋은 이유는 주로 두 가지 때문이다.  1.버퍼 크기 차이BufferedReader는 기본적으로 큰..
[JAVA] 입출력 스트림 ④ 보조스트림 _ RandomAccess
·
JAVA
④ RandomAccessFile: 파일은 보통 순차적으로 읽고 쓰는데, RandomAccess는 파일내 임의의 위치에 있는 데이터에 접근할 수 있도록 하는 기능이다. 이는 대용량 파일에서 특정 위치에 있는 데이터를 빠르게 찾아내기 위해 사용된다. 따라서, 파일의 시작부터 끝까지 순차적으로 데이터를 읽거나 쓰는 기본 스트림을 RandomAccess 보조 스트림에는 굳이 생성해 줄 필요가 없다. RandomAccess의 문법을 살펴보면 하기와 같다. 여기서 모드는 총 4가지 이다. "r":읽기 / "w":쓰기 / "rw": 읽고쓰기 / "a": 이어쓰기 중에 선택하여 " " 와 함께 사용하면 된다. RandomAccessFile acc = new RandomAccessFile(파일경로, 모드); 아래의 예..
[JAVA] 입출력 스트림 ④ 보조스트림 _ 바이트를 문자로
·
JAVA
③ InputStreamReader / OutputStreamWriter : 바이트 스트림을 문자로 변환해 주는 보조 스트림이다. InputStreamReader : InputStream에서 바이트로 읽어드리면서 정해진 인코딩 방식으로 디코딩하여 문자 스트림으로 변환하는 보조스트림이다. FileInputStream에서 byte로 읽어드리면 InputStreamReader에서 해당 byte를 문자 스트림으로 변환하는 구조이다. OutputStreamWriter : OutputStream으로 문자를 출력하면서 정해진 인코딩 방식으로 인코딩하여 바이트 스트림으로 변환하는 보조스트림. FileOutputStream에서 byte로 출력하는 경우 OutputStreamWriter를 사용하여 byte 를 문자 스트림..
[JAVA] 입출력 스트림 ④ 보조스트림 _ Object
·
JAVA
② Object 보조 스트림 : 메모리에 생성된 객체를 파일이나 네트워크로 출력하는 걸 도와주는 스트림. 객체는 문자가 아니기 때문에 바이트 기반 스트림과 함께 사용해야 한다. 우선 객체를 바이트 스트림으로 바꿔주려면 직렬화(serialization)와 객체 역직렬화(deserialization) 개념을 알아야 한다. 직렬화 : 객체를 바이트 스트림으로 변환 하는 메커니즘. 객체를 출력하기 위해 객체의 데이터를 일렬로 만들어 연속적인 바이트로 변경 하는 것을 의미하며 변환하는 이유는 객체를 디스크 혹은 데이터베이스에 저장하기 위해서이다. 역직렬화 : 파일에 저장 되어 있거나 네트워크에서 전송 된 객체를 읽는 것을 말하는데, 입력 스트림으로부터 읽어드린 연속적인 바이트를 객체로 복원하는 것을 의미한다. p..
해니01_15
'자바입출력' 태그의 글 목록