입출력 스트림의 종류
- 바이트 기반 스트림 : 그림 멀티미디어, 문자등 모든 종류의 데이터를 받고 보내는 것 가능
- 문자 기반 스트림 : 문자만 받고 보낼 수 있도록 특화된 스트림
문자 기반 스트림에는 입력스트림인 Reader과 Writer가 있습니다.
writer 객체
writer(int c)
매개 변수로 주어지는 int(4byte)에서 끝 2byte(1개 문자)만 출력 스트림을 보냄
예시) 한 문자씩 출력하기
write(char[] cbuf) , write(String str)
매개변수로 받은 변수들을 파일에 출력한다.
예시
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class Main {
public static void main(String[] args) throws IOException {
///Users/jodonghyeon/Desktop/코딩/Java_Class_Test
//
Writer filewriter = new FileWriter("./test.txt");
char a = 'A';
char b= 'B';
filewriter.write(a);
filewriter.write(b);
//문자 하나하나씩 출력
String str = "\n string \n";
char cbuf[] = {'a' , 'b' , 'c'};
filewriter.write(str);
//문자열을 출력
filewriter.write(cbuf);
//문자 배열에 모든 문자를 다 하나씩 출력
filewriter.flush();
//출력 버퍼에 잔류하는 모든 문자를 출력
filewriter.close();
//출력 스트림 닫음 . 안하면 리소스 누수
}
}
Reader 객체
read()
입력 스트림으로부터 1개의 문자를 읽고 int타입으로 반환
char charData = (char) read();
이렇게 해주면 문자를 얻을 수 있습니다.
read(char[] cbuf)
입력 스트림으로부터 cbuf배열에 문자들을 저장한다.
반환값은 읽어들인 문자들의 갯수.
Reader fileReader = new FileReader("./test.txt");
char [] cbuf = new char[100];
fileReader.read(cbuf);
System.out.println(cbuf);
filereader.close();
텍스트 파일에 있는 내용을 전부 콘솔에 출력합니다.
보조 스트림이란?
다른 스트림과 연결되어 여러가지 편리한 기능을 제공하는 스트림입니다.
자체적으로 입출력 수행할 수 없기 때문에 Reader , writer등에 연결해서 입출력을 수행합니다.
종류가 워낙 많기 때문에 각 종류마다 따로 포스트 하겠습니다.
문자 기반 스트림의 보조 스트림
- 성능 향상 보조 스트림 : BufferdReader , BufferedWriter
- 프린터 보조 스트림 : PrintWriter - (PrintWriter pw = new PrintWriter(reader))
Scanner로 문자기반파일 내용 읽어들이기
//문자기반 입력 스트림
FileReader reader = new FileReader("./test.txt");
//스캐너인자에다가 문자기반입력스트림을 넣습니다.
Scanner scan = new Scanner(reader);
//다음줄이 있으면
while(scan.hasNext())
{
//한줄 한줄 내용을 받아들입니다.
String str = scan.nextLine();
}
반응형
'알고리즘 PS (백준) > ☕️ Java (자바)' 카테고리의 다른 글
[백준 2164번] java(자바) 큐(Queue) 개념과 활용 - 카드2 (0) | 2022.07.26 |
---|---|
[백준 2161번] java(자바) 큐(Queue) 개념과 활용 - 카드1 (0) | 2022.07.21 |
[백준 9012번] java(자바) 스택(stack) 개념과 활용 - 자료구조 (0) | 2022.07.19 |
[백준 1436번] 영화감독 숌 - java(자바) 브루트포스 알고리즘 (0) | 2022.07.14 |
[백준 19939번] 박 터뜨리기 - java(자바) 그리디 알고리즘 (0) | 2022.07.12 |
댓글