자바의 문자 기반 스트림은 문자(char) 데이터를 입출력하는 데 사용되는 스트림입니다. 주로 텍스트 파일이나 문자열과 같은 문자 데이터를 처리할 때 유용합니다. 여기에는 주요한 문자 기반 스트림 몇 가지가 있습니다.
1. FileReader 및 FileWriter
FileReader 및 FileWriter는 파일에서 문자를 읽고 쓰는 데 사용됩니다.
try (FileReader reader = new FileReader("input.txt");
FileWriter writer = new FileWriter("output.txt")) {
int data;
while ((data = reader.read()) != -1) {
writer.write(data);
}
} catch (IOException e) {
e.printStackTrace();
}
2. BufferedReader 및 BufferedWriter
BufferedReader 및 BufferedWriter는 성능 향상을 위해 버퍼링을 제공하는 문자 기반 스트림입니다.
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine(); // 새로운 줄에 쓰기
}
} catch (IOException e) {
e.printStackTrace();
}
3. CharArrayReader 및 CharArrayWriter
CharArrayReader 및 CharArrayWriter는 문자 배열을 읽고 쓰는 데 사용됩니다.
char[] charArray = "Hello, World!".toCharArray();
try (CharArrayReader reader = new CharArrayReader(charArray);
CharArrayWriter writer = new CharArrayWriter()) {
int data;
while ((data = reader.read()) != -1) {
writer.write(data);
}
char[] resultCharArray = writer.toCharArray();
} catch (IOException e) {
e.printStackTrace();
}
4. StringReader 및 StringWriter
StringReader 및 StringWriter는 문자열을 읽고 쓰는 데 사용됩니다.
String inputString = "Java is fun!";
try (StringReader reader = new StringReader(inputString);
StringWriter writer = new StringWriter()) {
int data;
while ((data = reader.read()) != -1) {
writer.write(data);
}
String resultString = writer.toString();
} catch (IOException e) {
e.printStackTrace();
}
5. PrintWriter
PrintWriter는 다양한 자료형을 문자로 출력할 수 있는 편리한 메서드를 제공합니다.
try (PrintWriter writer = new PrintWriter("output.txt")) {
writer.println("Hello, World!");
writer.printf("Formatted Number: %d", 42);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
이러한 문자 기반 스트림들은 각각의 특징에 따라 다양한 상황에서 사용됩니다. 선택된 스트림은 작업의 성격 및 요구사항에 따라 적절하게 선택되어야 합니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 OutputStream (0) | 2023.11.25 |
---|---|
자바 InputStream (0) | 2023.11.25 |
자바 보조스트림 (0) | 2023.11.25 |
자바 바이트기반 스트림 (0) | 2023.11.25 |
자바 입출력 (0) | 2023.11.25 |