14장. 자바의 입출력
13장은 GUI 쓰임새가 적기에 넘어갑니다.
* 입출력
입력 : 자바 내부로 데이터 흘러 들어오는 것
출력 : 자바 외부로 데이터 흘러 나가는 것
자바 내부 자바 외부
String s 메모리 버퍼
파일
키보드
데이터베이스(java.sql)
외부 컴퓨터(java.net)
파일 데이터 입력 = 파일 입력 스트림
파일 데이터 출력(저장) = 파일 출력 스트림
키보드 입력 = 표준입력장치
모니터 출력 = 표준출력장치
System 클래스 : 자바 프로그램 실행 컴퓨터 정보
System.out 변수 : 현재 컴퓨터의 모니터 변수
System.out.println()
System.in 변수 : 현재 컴퓨터의 키보드 변수
java.io.InputStream 타입
버퍼 입력/버퍼 출력
java.io.50
|
입력 |
출력 |
1byte 단위 (바이트기반) ex) a.jpg, a.mp3 |
InputStream, |
OutputStream, File OutputStream |
2byte 단위 (문자기반) ex) a.txt |
Reader, FileReader |
Writer, FileWriter |
ASCII code : 문자 1byte씩
Unicode : 다국어 2byte씩
'a' ==> 1byte or 2byte
표준 입출력 api(키보드 입력/모니터 출력)
파일 입출력 api+java.util.Scanner+java.util.SringTokenizer
* FileInputStream
1바이트 파일 입출력
read() / write()
생성
a.txt 파일 저장 데이터를 자바 입력
FileInputStream fi = new FileInputStream("a.txt");
fi.read() ==> 한 문자를 1 바이트씩 입력
a.txt파일로 데이터를 출력
FileOutputStream fo = new FileOutputStream("a.txt");
fo.write(97); // Aa
fo.close()
try-catch-finally
명령형 매개변수
a.txt, b.txt
a.txt 파일 입력 받아서 b.txt 파일 출력(복사)
FileOutputStream fo = new FileOutputStream("c:.....src\FileCopyTest.java);
==> (기준) 프로젝트폴더\src\*.java
상대경로
FileOutputStream fo = new FileOutputStream("c:.....src\FileCopyTest.java);
==> (기준) 프로젝트폴더c:\eclipse\work.....src\*.java
절대경로
* java.util.Scanner
jdk1.5 추가 api
쉽고 강력한 기능 포함
역할 : 키보드 입력, 데이터의 한글, 자바 데이터타입 변환 입력 용도
생성자 :
Scanner s = new Scanner(System.in);
int <= s.nextInt(); .....등등
String <== s.next() ; 공백 이전의 문자열 ""
String <== s.nextLine(); 한줄 문자열
표준 입력 : 한글제외 입력 - 출력 system.in.read
파일 입력 : 입력 - 출력 : FileReader, Scanner
* java.io.File 클래스