소프트웨어 개발/Java - Basic

Reader 등으로 글자 입력받기

늘근이 2015. 8. 24. 21:35

다음과 같은 간단한 코드로 json 을 그냥 쌩으로 읽을 수 있다.

다만 json객체로 바꾸지는 못한다.



		Reader reader = new BufferedReader(new FileReader("sample.json"));
		
		int data = reader.read();
		while(data != -1) {
			char c = (char) data;
			System.out.println(c);
			data = reader.read();
		}


데코레이터 패턴을 이용했기 때문에 위와같이 reader안에 Reader를 리턴하는 문장으로 만든다.



		Reader reader = new BufferedReader(new FileReader("sample.json"));
		
		InputStream is = new ByteArrayInputStream("sample.json".getBytes());
		BufferedReader br = new BufferedReader(new InputStreamReader(is));
		StringBuilder sb = new StringBuilder();
		String line = null;
		while ((line = br.readLine()) != null) {
			sb.append(line);
		}
		System.out.println(line);


데코레이터 패턴을 이용했기 때문에 위와같이 reader안에 Reader를 리턴하는 문장으로 만든다.

위는, line을 읽는 InputStreamReader 다. 사실, 데코레이터 패턴을 이해하고 있으면 InputStreamReader라는 헷갈리는 이름을 맞닥뜨려도 할만하다. InputStream이란 한뭉치를 읽으려면 Reader가 필요한데 이를 가져다가 읽고 다시한번 BufferedReader에 태워서 쉽게 Reader안에 넣는다. 그런 후, readLine()메서드를 통해 읽으면 되는것이다.