char 타입
예제
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TestCharStream {
public void fileSave() {
FileWriter fw = null; // 래퍼런스 변수선언 (import FileWriter)
// filewWriter fw = new filwriter를 사용하면 트라이구문안에서만 fw가
// 작용하기때문에 먼저 변수선언을 해줌
try {
fw = new FileWriter("sample.txt");
fw.write("안녕하세요. 월요일 아침입니다.");
// sample 텍스트파일에 입력됨.
// byte단위로 한글을 치면 깨짐
fw.write('A'); // 자동으로 int로 형식이 바뀜(유니코드 65)
fw.write(' ');
char[] carr = { 'a', 'p', 'p', 'l', 'e' };
fw.write(carr); // 이렇게 배열로 만들어도 잘 저장됨
} catch (IOException e) {
e.printStackTrace();// 에러메세지 출력
} finally {// 예외가생기던지 문제가없던지 실행
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void fileOpen() {
FileReader fr = null;
try {
fr = new FileReader("sample.txt");// 먼저 만들어주고 트라이캐치만들어줌
// for(int i=0; i<100 ; i ++) {
// try {
// System.out.println(fr.read());
int val = 0;
while ((val = fr.read()) != -1) {
System.out.println((char) val); // 파일을 찾아서 읽어오는 구문 (하나하나씩 읽어옴 )
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
출력
public class Run {
public static void main(String[] args) {
TestCharStream tc = new TestCharStream();
tc.fileSave();
tc.fileOpen();
}
}출력값:
안
녕
하
세
요
.
월
요
일
아
침
입
니
다
.
A
a
p
p
l
e
보조Stream
입출력 대상이 되는 파일이지만 직접 네트워크를 읽거나 쓰는 기능은 존재하지않음 ,
말 그대로 보조 기능을 추가하는 스트림 -> 다른 스트림을 감싸고 있다는 뜻에서 Wrapper Stream 이라고도 부름
예제
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class TestBuffer {
public void filesave() {
FileWriter fw = null;
BufferedWriter bw = null;// 빠르게 출력을 해보자!
// 객체 생성 (기반 , 보조 )
try {
// fw = new FileWriter ("sample2.txt");
// bw = new BufferedWriter(fw);
// 위에것은 너무 기니깐 한줄로
bw = new BufferedWriter(new FileWriter("sample2.txt"));
// 보조 =new 보조스트림(new 기반스트림(외부자원));
bw.write("안녕하세요\n");
bw.write("반갑습니다.\n"); // \n은 띄어쓰기
bw.write("안녕하세요.\n");
// 이렇게만하면 텍스트에 아무것도 안뜸
// bw.flush(); // 이것까지 해주어야 잘 뜸
// 트라이캐치 구문에 finally 에 bw.close 를 하면자동으로 플러쉬가됐었음
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void fileopen() {
try (BufferedReader br = new BufferedReader(new FileReader("sample2.txt"));) {
//선언과 동시에 할당 트라이구문까지 한번에
//br.readLine(); 하나하나 읽는게 아닌 한줄 다 읽어옴
String val = null;
while( ( val = br.readLine())!= null ) { // null이아닐때 다 출력을 하자! (스트링값이기때문에 null ,정수값이라면 -1)
System.out.println(val); // 출력해주는 구문
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
// 바로선언 할당
}
}// 보조스트림은 문자단위인데 기반스트림은 바이트 단위일 경우에는 단위 형변환해주는게 필요함
}
출력
public class Run {
public static void main(String[] args) {
TestBuffer tb = new TestBuffer();
//tb.filesave();
tb.fileopen();
}
}출력값:
안녕하세요
반갑습니다.
안녕하세요.
변경스트림
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class TestChange {
public static void main(String[] args) {
TestChange tc = new TestChange();
// tc.input();
// tc.output();
}
// 기반과 보조의 크기가 다를경우 사용하는 보조스트림
public void input() {
// 보조스트림 보조 = (new보조(new기반("외부자원")));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("문자열 입력: "); // 큰 의미없지만 일단 묶어줌
String Value = br.readLine();
System.out.println("Value: " + Value);
} catch (IOException e) {
e.printStackTrace();
}
}
public void output() {
// 콘솔창에출력하기
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 출력이기때문에 시스템 아웃
try {
bw.write("java dbms jdbc");
bw.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}출력값:
문자열 입력: java
Value: java
java dbms jdbc
'JAVA' 카테고리의 다른 글
[JAVA]Thread (0) | 2024.03.05 |
---|---|
[JAVA] Collection(List , set , Map) (1) | 2024.02.27 |
[JAVA]입출력( I / O ) (0) | 2024.02.22 |
[JAVA]예외처리 (0) | 2024.02.22 |
[JAVA]객체#3 (0) | 2024.02.21 |