반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- interrupt()
- 스레드그룸
- include 지시자
- 리눅스셋팅
- sleep()메소드
- interrupted()
- first-child
- include지시자
- ObjectInputStream
- 리눅스세팅
- MemoryStream
- 아이디중복
- include액션태그
- ID중복
- 동기화
- ThreadGroup()
- StringReader
- Linux세팅
- isinterrupted()
- InputDialog
- 표현 언어
- 메모리스트림
- String char[] 형변환
- Daemon()
- char[] String 형변환
- StringWriter
- 상관 서브 쿼리
- first-of-child
- 상관서브쿼리
- Linux셋팅
Archives
- Today
- Total
다연이네
[days25] 보조스트림 - InputStreamReader, PrintStream/ PrintWriter 본문
반응형
InputStreamReader
byte[] 값을 문자로 바꾸는 기능
System.out.print("> 한 문자 입력 ? ");
InputStream is = System.in;
try {
int i = is.read(); //한 문자를 int로 받음 read는 0~255 int값 반환하며 next byte로 한바이트로 읽어감
char one = (char)i;
System.out.println(one);
//한글은 깨진다 왜?
// UTF-8 알파벳(1) 한글(3) 바이트로 처리
} catch (IOException e) {
e.printStackTrace();
}
한글을 입력하면 깨짐
↓
바이트 값 확인해보기
byte [] buffer = new byte[10];
try {
int n = is.read(buffer); //한바이트만 읽지말고 있는거 다 읽어서 버퍼에 저장하자
System.out.println(Arrays.toString(buffer));
//배 입력시 [-80, -80, 13, 10, 0, 0, 0, 0, 0, 0] 한글3바이트, 2개는 그거
} catch (Exception e) {
e.printStackTrace();
}
-80, -80, 13 바이트 값을 한 문자로 바꾸는 기능 : InputStreamReader
한 라인으로 읽어가는 기능 : BufferedReader(보조스트림)
System.out.print("> 문자열 입력 ? ");
ArrayList<Character> list = new ArrayList<Character>();
InputStreamReader isr = new InputStreamReader(is);
int one = 0;
while((one=isr.read())!=-1) {
list.add((char)one);
}
System.out.println(list);
문자 입력 후 ctrl+Z
PrintStream/ PrintWriter 클래스
바이트스트림 / 문자스트림
출력과 관련된 기능을 제공하는 스트림
- PrintStream
//InputStream is = System.in;
PrintStream ps = System.out;
String name = "배다연";
int age =23;
ps.printf("%s %d\n", name, age);
//배다연 23
- PrintWriter
package test;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Re13 {
public static void main(String[] args) {
String name = "배다연";
int kor= 90, eng=89, mat=77, tot=kor+eng+mat;
double avg = tot/3.0;
String gender = "여자";
String fileName = ".\\src\\days25\\Readthis.txt";
try {
FileWriter fr = new FileWriter(fileName, true);
PrintWriter pw = new PrintWriter(fr);
pw.printf("%s, %d %d %d %d %.2f %s\n",
name, kor, eng, mat, tot, avg, gender);
pw.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 파일을 읽어와 콘솔 창에 출력하기
String fileName = ".\\src\\days25\\Readthis.txt";
File file = new File(fileName);
try(
FileReader fr = new FileReader(file);
BufferedReader br= new BufferedReader(fr)
) {
String n = null;
while((n=br.readLine())!=null) {
System.out.println(n);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
출력값 (아까 입력한 데이터들 누적된 값)
배다연, 90 89 77 256 85.33 여자
김동준, 90 89 77 256 85.33 남자
반응형
'Java' 카테고리의 다른 글
[days25] RandomAccessFile (0) | 2020.10.25 |
---|---|
[days25] 메모리스트림 - StringReader / StringWriter (0) | 2020.10.25 |
[days25] File 객체 (0) | 2020.10.25 |
[days25] 파일 복사하기 (1. 실행파일 2.txt파일) (0) | 2020.10.25 |
[days25] FileOutputStream을 이용해 파일 만들기 (0) | 2020.10.25 |
Comments