본문 바로가기
프로그래밍/java

자바 java.io 패키지, 문자 스트림(Character Stream)

by -현's- 2014. 4. 11.
반응형


●문자 스트림(Character Stream)

- 자바 스트림 클래스 중에서 처리할 데이터가 문자인 경우에 사용한다. 문자 스트림은 16bit 유니코드 문자를 주고 받는다. 


Reader

Writer 

 입출력을 위한 문자 스트림의 최상위 추상 클래스

FileReader

FileWriter 

 파일 입출력을 위한 문자 스트림 클래스

BufferedReader

BufferedWriter 

 입출력 스트림에 버퍼링 기능을 추가해주는 스트림

PrintWriter 

 출력을 위한 동작을 지원하는 문자 스트림

InputStreamReader

OutputStreamWriter

 바이트와 문자 변환을 위한 입출력 스트림







●FileReader, FileWriter 클래스

- 기본 문자 인코딩 방식으로 텍스트 파일을 읽고 쓰기 위해 제공되는 문자 스트림 클래스이다.


-FileReaderWriter

import java.io.*;


public class FileReaderWriter

{

public static void main(String args[]){

try{

FileReader input = new FileReader("a.txt");

FileWriter output = new FileWriter("b.txt");

int a;

while((a=input.read()) != -1){

output.write(a);

}

input.close();

output.close();


}catch(IOException e){

e.printStackTrace();

}

}

} 












●BufferedReader, BufferedWriter 클래스

- 연결된 스트림에 버퍼링 기능을 한다.



BufferedReaderWriter.java

import java.io.*;


public class BufferedReaderWriter

{

public static void main(String []args){

try{

if(args.length<1){

System.out.println("xx");

}

String str;

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));


BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("str.txt")));


while((str = br.readLine())!=null){

bw.write(str+"\n");

}

br.close();

bw.close();

}catch(IOException e){

e.printStackTrace();

}

}

} 













●InputStreamReader, OutputStreamWriter 클래스

- 바이트와 문자의 변환을 담당하는 클래스이다.




- IOReader.java

import java.io.*;


public class IOReader

{

public static String getString(){

StringBuffer s = new StringBuffer();

Reader reader = new InputStreamReader(System.in);

char ch;

try{

while((ch = (char)reader.read())!= '\n'){

s.append(ch);

}

}catch(Exception e){

s = new StringBuffer("");

}

return s.toString().trim();

}

public static int getInt(){

String s = getString();

int n;

try{

n = Integer.parseInt(s);

}catch(Exception e){

n = 0;

System.out.println("숫자 에러");

}

return n;


}

public static void main(String[] args){

String name;

int age;

IOReader reader = new IOReader();

System.out.println("이름:");

name = reader.getString();

System.out.println("나이:");

age = reader.getInt();


System.out.println("이름:"+name+" 나이:"+age);


}


}












반응형

댓글