* 보조 스트림 == 기반스트림의 부족한 성능을 보다 향상시켜주는 역할
                          보조스트림 단독 사용 불가(반드시 기반스트림과 함께 사용)
 * BufferedXXXXXXX: 속도를 향상 시킨다거나 기반 스트림에서 제공하지 않는 메소드들을 제공 
 

1. 프로그램 --> 파일(출력)
// FileWriter : 파일과 직접적으로 연결해서 2byte단위로 출력할 수 있는 기반 스트림
// BufferedWriter : 버퍼라는 공간을 제공해주는 보조스트림(보조스트림은 기반스트림과 동일한 이름으로) - 속도향상 

//try~ with~ resource 구문 사용 -> finally 구문 쓰지않아도 자동 스트림 반납됨 

public void fileSave() {
		 /* try~with~resource 구문을 이용하면 자원반납까지 자동으로 진행(jdk7버전 이상부터 가능)
		 * try( try블럭 내에서 사용할 스트링 객체 생성구문; 생성구문..){
		 * 
		 * }catch(예외클래스 e){
		 * 
		 * }
		 */
	
		try(BufferedWriter bw = new BufferedWriter(new FileWriter("c_buffer.txt"))){
			bw.write("안녕하세요\n");
			bw.write("반갑습니다");
			bw.newLine();
			bw.write("저리가세요");
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

2. 프로그램 <--- 파일 (입력)
//FileReader
//BufferedReader

public void fileRead() {

		try(BufferedReader br = new BufferedReader(new FileReader("c_buffer.txt"))){
			// readLine() : 한줄씩 읽어들이는 메소드 
			/*
			System.out.println(br.readLine());
			System.out.println(br.readLine());
			System.out.println(br.readLine());
			System.out.println(br.readLine()); // 파일의 끝을 만나는 순간 "null"을 반환 
			System.out.println(br.readLine());
			*/
			//반복문 이용
			String str = null;
			while((str=br.readLine()) != null) {
				System.out.println(str);
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
복사했습니다!