-
[JAVA] BufferedReader, BufferedWriter 연습하기얼렁뚱땅 자바이야기 2023. 2. 27. 10:24
학교에서 자바를 배웠을 때, 주로 Scanner를 이용해서 입력받았다.
그런데, Scanner의 경우 BufferedReader보다 느리다는 것을 알게되었다.
사실 Python에서도 input(), sys.stdin.readline() 입력받는 시간 차이가 존재하여
코딩테스트 풀 때 후자로 풀라는 말을 많이 받았는데,
난 사실 거의 input()이 간단해서 그냥 이걸로 했었다.
근데, 자바는 6배정도의 차이가 나기 때문에, BufferedReader 연습을 해야겠다.
그리고 BufferedReader도.
완전 기본적으로 입력받는 것에 대한 예제
입력 받을 때에는 반드시 String 형으로 받기 때문에 다른 형을 원하면 변환 필요함.
import java.io.*; import java.util.*; public class bufferedreader_Study { public static void main(String[] args) throws IOException { //TODO Auto-generated method stub // BefferedReader로 읽을 때, 반드시 String으로 받아 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 선언 String str = br.readLine(); // 3 int a = Integer.parseInt(str); System.out.println(a); // 3
StringTokenizer써서 " "에 따라 나누는 거랑 split(" ")으로 나누는 거랑 동일함을 보여줌
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); //1 3 StringTokenizer st = new StringTokenizer(str); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); System.out.println(a); // 1 System.out.println(b); // 3 String [] array = str.split(" "); for(int i=0;i<array.length;i++) { System.out.println(array[i]); } //1 \n 3 // String Tokenizer 써서 " "에 따라 나누는 거랑 split(" ") 쓰는 거랑 동일 함을 보여줌
System.out.println() 과 동일한 기능을 하는 BufferedWriter()
bw.write의 경우 가상의 buffer에 작성을 해주는 것이기 때문에
저것만 써서 프린트가 되지는 않음,
반드시 bw.flush()나 bw.close()를 해줘야 buffer안에 있는 것이 출력됨
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); StringTokenizer st = new StringTokenizer(str); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); String k = "나는 밍지"; BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write(k+" "+"야호 야"); // 이렇게 한다고 바로 출력되는 게 아님 bw.newLine(); bw.flush(); bw.write("5"); bw.write(Integer.toString(b)); bw.flush(); bw.close(); }
여기 사이트 보고 그대로 적은 거다 !
원본은 여기여기여기 !
https://itkjspo56.tistory.com/178
[Java] 입출력 BufferedReader / BufferedWriter
알고리즘 공부하다가 Scanner를 사용하는일이 있었는데, 여러 예제를 찾아보니 BufferedReader와 BufferedWriter가 알고리즘 측면에서 더 효율이 높다는것을 발견했다. 초기 System.out.print할 데이터의 양이
itkjspo56.tistory.com
'얼렁뚱땅 자바이야기' 카테고리의 다른 글
[JAVA] 분명 같은데 왜 다르다는거야 !! "=="과 equals 차이 (0) 2023.02.28 [JAVA] bit 연산을 활용한 부분집합 만들기 (0) 2023.02.27 [JAVA] 자료형 크기 (0) 2023.02.27 [JAVA] Hashmap vs Treemap (0) 2023.02.27 [JAVA] 스캐너 연속 2번 쓸 때 나타난 문제 (0) 2023.02.24