제11장 자바 입출력

Similar documents
Network Programming

제11장 자바 입출력

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

파일로출력하는작업순서 1. 파일을연다. 2. 파일로자료를쓴다. 3. 파일을닫는다. 파일입출력에사용되는클래스들. FileInputStream, FileOutputStream, FileReader, FileWriter 문자단위로입출력하기 사람이읽을수있는문자로만구성된파일을읽

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt

Cluster management software

12-file.key

Microsoft PowerPoint - java1-lecture9.ppt [호환 모드]

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA PROGRAMMING 실습 08.다형성

자바입출력구조 자바입출력 파일 기본입출력 필터입출력 문자입출력 비순차접근파일 객체입출력 파일입출력 바이트배열입출력 파이프입출력 연결형입력 스트링버퍼입력 스트림 ( 순차접근 ) 자바입출력구조

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

Network Programming

Design Issues

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

설계란 무엇인가?

PowerPoint Presentation

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - 2강

Microsoft PowerPoint - java2-lab2-DirectoryImageConverter.pptx

PowerPoint Presentation

java.lang 패키지 java.util 패키지 java.io 패키지 콜렉션 2

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

제11장 프로세스와 쓰레드

Microsoft PowerPoint - java2-lecture2.ppt [호환 모드]

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

gnu-lee-oop-kor-lec06-3-chap7

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

09-Java Input Output

자바-11장N'1-502

The Pocket Guide to TCP/IP Sockets: C Version

Cluster management software

4장.문장

PowerPoint Presentation

rmi_박준용_final.PDF

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Part 11 예외및입출력 1

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

PowerPoint 프레젠테이션

13-Java Network Programming

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint 프레젠테이션

(Microsoft PowerPoint - java2-lecture2.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - [EEL2] Lab10.pptx

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

쉽게 풀어쓴 C 프로그래밍

Java

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint Template

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

쉽게 풀어쓴 C 프로그래밊

PowerPoint 프레젠테이션

Microsoft PowerPoint - lec7_package [호환 모드]

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

JUNIT 실습및발표

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

BMP 파일 처리

Spring Boot/JDBC JdbcTemplate/CRUD 예제

No Slide Title

PowerPoint Presentation

PowerPoint Presentation

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

JAVA PROGRAMMING 실습 07. 상속

JVM 메모리구조

Semantic Consistency in Information Exchange

PowerPoint 프레젠테이션

class InetAddress3{ public static void main(string[] args) throws Exception{ String url = null ; Scanner reader = new Scanner(System.in); System.out.p

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력

학습목표 네트워크개요 TCP PORT URL/InetAddress Socket/TCP 을이용한네트워크 2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint Presentation

05-class.key

PowerPoint Presentation

Microsoft PowerPoint - ch07 - 포인터 pm0415

Spring Boot

Transcription:

제11 장자바입출력 Java_surce->src->ch11

I/O Stream gic 자바입출력 2

서버와클라이언트의소켓준비 자바입출력 3

11.1.1 스트림개념 스트림 순서가있고, 길이가정해져있지않은데이터흐름종류 자바입출력 바이트 ( 바이너리, 숫자 ) 텍스트 ( 문자 )...InputStream...OutputputStream...Reader...Writer 자바입출력 4

11.1.1 스트림개념 바이트스트림 바이너리 (binary) 데이터와숫자를읽고, 쓰기위해서사용. - 예 : 그림파일, 동영상파일, 응용프로그램파일등 바이트단위로입출력작업 InputStream Java Prgram OutputStream 자바입출력 5

11.1.1 스트림개념 문자스트림 문자스트림은문자데이터를읽고, 쓰기위해서사용. 인코딩을자동으로변환해줌 KSC5601 인코딩 Reader 유니코드인코딩 Java Prgram Writer KSC5601 인코딩 자바입출력 6

11.1.2 자바입출력클래스분류와상속관계 용도에따른분류 데이터싱크스트림 - 데이터를근원지에서직접읽거나, 목적지에기록하는클래스들 데이터프로세싱스트림 - 다른스트림을이용해서중간에서어떤작업을수행하는클래스들 샤워의비유 수도꼭지 -> 싱크스트림 샤워기, 수도꼭지와샤워기를연결하는것 -> 프로세싱스트림 Java 싱크스트림 Prgram 프로세싱스트림 자바입출력 7

11.1.2 자바입출력클래스분류와상속관계 클래스들분류 자바입출력 8

11.1.2 자바입출력클래스분류와상속관계 싱크스트림클래스들 Cnse System.in/ut 자바입출력 9

11.1.2 자바입출력클래스분류와상속관계 데이터프로세싱스트림클래스 데이터프로세싱스트림은항상다른스트림을이용해서만생성가능데이터프로세싱스트림의생성자는다른스트림을매개변수로받게됨 자바입출력 10

11.1.2 자바입출력클래스분류와상속관계 바이트스트림상속관계 InputStream 과 OutputStream 으로부터상속받음. 회색은싱크스트림클래스 자바입출력 11

11.1.2 자바입출력클래스분류와상속관계 문자스트림상속관계 Reader 와 Writer 클래스로부터상속받는다. 회색은싱크스트림클래스 자바입출력 12

11.2.1 InputStream/OutputStream 추상클래스 InputStream 클래스 바이트 (byte) 입력스트림을위한가장상위클래스. System.in 대표적인메소드들 -int read() -입력스트림에서한바이트를읽어서리턴. -int read(byte[] b, intff, inten) -입력스트림에서 en 개의바이트를읽어서바이트배열 b에저장. - int read(byte[] b) - 배열의크기만큼읽는다. 읽은바이트수리턴. 자바입출력 13

Input Stream chain exam Data Surce prgram FieInputStream BufferedInputStream DataInputStream 자바입출력 14

OutputStream chain exam prgram Data Surce DataOutputStream BufferedOutputStream FieOutputStream 자바입출력 15

11.2.1 InputStream/OutputStream 추상클래스 예제 : SimpeRead.java 8 try { 9 b = System.in.read(); 10 whie(b!= -1) { 11 System.ut.print((char)b); 12 cunt++; 13 b = System.in.read(); 14 } 15 } catch(ioexceptin e) { 16 System.ut.printn(e); 17 } 18 System.ut.printn(); 결과 C:\> java SimpeRead He He 한글??±? ^Z tta bytes:13 19 System.ut.printn("tta byte:" + cunt); 자바입출력 16

11.2.1 InputStream/OutputStream 추상클래스 콘솔 리다이렉션 C: > java SimpeRead < SimpeRead.java imprt java.i.ioexceptin;... C: > java SimpeRead < SimpeRead.java > utput.txt C: > mre utput.txt imprt java.i.ioexceptin; 자바입출력 17

11.2.1 InputStream/OutputStream 추상클래스 CnseReader 클래스 콘솔에서데이터를쉽게읽기위한사용자정의클래스 예제 : CnseReader.java 3 pubic cass CnseReader extends BufferedReader { 4 pubic CnseReader(Reader in) thrws IOExceptin { 5 super(in); 6 } 7 8 pubic CnseReader(InputStream in) thrws IOExceptin { 9 super(new InputStreamReader(in)); 10 } 11 12 pubic int readint() thrws IOExceptin { 13 return Integer.parseInt(readLine().trim()); 자바입출력 18

11.2.1 InputStream/OutputStream 추상클래스 예제 : CnseReader.java( 계속 ) 16 pubic String readstring() thrws IOExceptin { 17 return readline().trim(); 18 } 19 20 pubic char readchar() thrws IOExceptin { 21 String ine = readline().trim(); 22 return ine.charat(0); 23 } 24 25 pubic dube readdube() thrws IOExceptin { 26 Dube d = new Dube(readLine().trim()); 27 return d.dubevaue(); 자바입출력 19

11.2.1 InputStream/OutputStream 추상클래스 예제 : CnseReaderTest.java 11 CnseReader in = new CnseReader(System.in); 12 System.ut.print(" 정수를입력해주세요 :"); 13 ivaue = in.readint(); 14 System.ut.printn("vaue = " + ivaue); 15 System.ut.print(" n실수를입력해주세요 :"); 16 dvaue = in.readdube(); 17 System.ut.printn("vaue = " + dvaue); 18 System.ut.print(" n문자를입력해주세요 :"); 19 cvaue = in.readchar(); 20 System.ut.printn("vaue = " + cvaue); 21 System.ut.print(" n문자열을입력해주세요 :"); 22 svaue = in.readstring(); 23 System.ut.printn("vaue = " + svaue); 자바입출력 20

11.2.1 InputStream/OutputStream 추상클래스 Cpier 클래스 입력스트림에서읽은데이터를출력스트림으로출력하는사용자 정의클래스 예제 : Cpier.java 3 pubic cass Cpier { 4 prtected InputStream in; 5 prtected OutputStream ut; 6 prtected byte data[]; 7 8 pubic Cpier(InputStream in, OutputStream ut, int sz) { 9 this.in = in; 10 this.ut = ut; 11 data = new byte[sz]; 자바입출력 21

11.2.1 InputStream/OutputStream 추상클래스 예제 : Cpier.java( 계속 ) 14 pubic Cpier(InputStream in, OutputStream ut) { 15 this(in, ut, 1024); 16 } 17 18 pubic vid cpy() thrws IOExceptin { 19 int n = 0; 20 whie((n = in.read(data))!= -1) { 21 ut.write(data, 0, n); 22 } 23 in.cse(); 24 ut.cse(); 자바입출력 22

11.2.2 FieInputStream/FieOutputStream FieInputStream 파일에서바이트단위로내용을읽기위해사용생성자 - FieInputStream(Fie fie) - FieInputStream(String name) FieOutputStream 파일로바이트단위로내용을출력하기위해사용생성자 - FieOutputStream(Fie fie) - FieOutputStream(String name, bean append) - FieOutputStream(String name) 자바입출력 23

11.2.2 FieInputStream/FieOutputStream 예제 : CnseCpy.java 결과 C:\> java CnseCpy abc.txt 4 pubic static vid main(string args[]) { 한글입니다. 5 if(args.ength!= 1) { ^Z 6 System.ut.printn( C:\> mre abc.txt 7 "usage: java CnseCpy <fiename>"); 한글입니다. 8 System.exit(1); 9 } 10 try { 11 Cpier cp = new Cpier(System.in, 12 new FieOutputStream(args[0])); 13 cp.cpy(); 자바입출력 24

11.2.2 FieInputStream/FieOutputStream 예제 : Mre.java 4 pubic static vid main(string args[]) { 5 if(args.ength!= 1) { 6 System.ut.printn( 7 "usage: java Mre <fiename>"); 8 System.exit(1); 9 } 10 try { 결과 C:\> java Mre Mre.java imprt java.i.*; pubic cass Mre {... 11 Cpier cp = new Cpier(new FieInputStream(args[0]), 12 System.ut); 13 cp.cpy(); 자바입출력 25

11.2.2 FieInputStream/FieOutputStream 예제 : FieCpy.java 결과 C:\> java FieCpy abc.txt bc.txt 5 if(args.ength!= 2) { 파일복사가완료되었습니다. 6 System.ut.print("usage: java FieCpy "); C:\> mre bc.txt 7 System.ut.printn("<fiename> <fiename>"); 한글입니다. 8 System.exit(1); 9 } 10 try { 11 Cpier cp = new Cpier(new FieInputStream(args[0]), 12 new FieOutputStream(args[1])); 13 cp.cpy(); 14 System.ut.printn(" 파일복사가완료되었습니다."); 자바입출력 26

11.2.3 FieReader/FieWriter FieReader 파일에서문자단위로내용을읽을때사용생성자 - FieReader(Fie fie) - FieReader(String fiename) FieWriter 파일에문자데이터를출력할때사용생성자 - FieWriter(Fie fie) - FieWriter(String fiename, bean append) - FieWriter(String fiename) 자바입출력 27

11.2.3 FieReader/FieWriter 예제 : ReadFieData.java 10 try { 11 CnseReader in = new CnseReader( 12 new FieReader("data.txt")); 13 ivaue = in.readint(); 14 System.ut.printn("vaue = " + ivaue); 15 dvaue = in.readdube(); 16 System.ut.printn("vaue = " + dvaue); 17 cvaue = in.readchar(); 18 System.ut.printn("vaue = " + cvaue); 19 svaue = in.readstring(); 20 System.ut.printn("vaue = " + svaue); 자바입출력 28

11.2.4 InputStreamReader/OutputStreamWriter InputStreamReader 입력스트림을 Reader 타입으로변환생성자 - InputStreamReader(InputStream in, String enc) - InputStreamReader(InputStream in) OutputStreamWriter 출력스트림을 Writer 클래스로변환생성자 - OutputStreamWriter(OutputStream ut, String enc) - OutputStreamWriter(OutputStream ut) 자바입출력 29

11.2.5 PrintStream/PrintWriter PrintStream 데이터출력 ( 예 : System.ut, System.err) 생성자 - PrintStream(OutputStream ut, bean autfush) - PrintStream(OutputStream ut) PrintWriter 문자데이터출력생성자 - PrintWriter(OutputStream ut, bean autfush) - PrintWriter(OutputStream ut) - PrintWriter(Writer ut, bean autfush) - PrintWriter(Writer ut) 자바입출력 30

11.2.5 PrintStream/PrintWriter CnseWriter 출력을보다편리하게할수있는사용자정의클래스 예제 : CnseWriter.java 4 pubic cass CnseWriter extends PrintWriter { 5 pubic CnseWriter(OutputStream ut) { 6 super(ut, true); 9 pubic CnseWriter(Writer ut) { 10 super(ut, true); 13 pubic vid printwn(ng vaue) { 14 String frmat = "W#,###"; 15 DecimaFrmat df = new DecimaFrmat(frmat); 16 print(df.frmat(vaue)); 자바입출력 31

11.2.5 PrintStream/PrintWriter 예제 : CnseWriter.java( 계속 ) 24 pubic vid printdar(fat vaue) { 25 String frmat = "$#,###.00"; 26 DecimaFrmat df = new DecimaFrmat(frmat); 27 print(df.frmat(vaue)); 35 pubic vid print(dube vaue, int digit) { 36 String frmat = "#."; 37 fr(int i=0; i < digit; i++) { 38 frmat += "#"; 39 } 40 DecimaFrmat df = new DecimaFrmat(frmat); 41 print(df.frmat(vaue)); 42 fush(); 자바입출력 32

11.2.5 PrintStream/PrintWriter 예제 : CnseWriterTest.java 5 CnseWriter ut = new CnseWriter(System.ut); 6 dube d = 123.456789; 7 int mney = 1234567; 8 9 ut.printn(d); 10 ut.printn(d, 2); 11 ut.printnwn(mney); 12 ut.printndar(mney); 결과 C:\> java CnseWriterTest 123.456789 123.46 W1,234,567 $1,234,567.00 자바입출력 33

11.2.6 BufferedInputStream/BufferedOutputStream BufferedInputStream 바이트입력에서성능을높이기위해서버퍼를사용하는클래스생성자 - BufferedInputStream(InputStream in, int size) - BufferedInputStream(InputStream in) BufferedOutputStream 바이트출력에서성능을높이기위해서버퍼를사용하는클래스생성자 - BufferedOutputStream(OutputStream ut, int size) - BufferedOutputStream(OutputStream ut) 자바입출력 34

11.2.7 BufferedReader/BufferedWriter BufferedReader 버퍼를사용하는 Reader 생성자및중요메소드 - BufferedReader(Reader in, int sz) - BufferedReader(Reader in) - String readline() BufferedWriter 버퍼를사용하는 Writer 생성자 - BufferedWriter(Writer ut, int sz) - BufferedWriter(Writer ut) 자바입출력 35

11.2.7 BufferedReader/BufferedWriter 예제 : CnfiguratinReader.java 28 BufferedReader br = 29 new BufferedReader(new FieReader(fie) ); 30 31 whie((r=br.readline())!= nu) { 32 r = r.trim(); 33 if(r.charat(0) == cmment ) { 34 cntinue; 35 } ese { 36 StringTkenizer st = 37 new StringTkenizer(r,dem,fase); 38 String key = st.nexttken(); 39 String vaue = st.nexttken(); 40 ht.put(key, vaue); 자바입출력 36

11.2.7 BufferedReader/BufferedWriter 예제 : CnfiguratinReader.java( 계속 ) 46 pubic String getvaue(string name) { 47 return (String)ht.get(name); 결과 48 } C:\> java CnfiguratinReader 49 7690 50 pubic static vid main(string args[]) { it.mkp.ac.kr 51 CnfiguratinReader cr = admin@it.mkp.ac.kr 52 new CnfiguratinReader("server.cnf"); 53 try { 54 cr.parse(); 55 System.ut.printn(cr.getVaue("prt")); 56 System.ut.printn(cr.getVaue("server")); 57 System.ut.printn(cr.getVaue("admin")); 자바입출력 37

11.2.8 DataInputStream/DataOutputStream DataInputStream 데이터타입별로읽을때사용생성자및중요메소드 - DataInputStream(InputStream in) char readchar() dube readdube() int readint() DataOutputStream 데이터타입별로출력생성자및중요메소드 - DataOutputStream(OutputStream ut) vid writechar(int v) vid writeint(int v) 자바입출력 38

11.2.8 DataInputStream/DataOutputStream 예제 : DataIOTest.java 12 pubic vid write() thrws IOExceptin { 13 DataOutputStream ut = new 14 DataOutputStream(new FieOutputStream(fie)); 15 int vaue[] = Fibnachi.cacuate(n); 16 fr(int i=0; i <= n; i++) { 17 ut.writeint(vaue[i]); 18 //System.ut.printn(vaue[i]); 19 } 20 ut.fush(); 21 ut.cse(); 자바입출력 39

11.2.8 DataInputStream/DataOutputStream 예제 : DataIOTest.java( 계속 ) 24 pubic vid read() thrws IOExceptin { 25 DataInputStream in = 26 new DataInputStream(new FieInputStream(fie)); 27 int n = in.avaiabe()/4; 28 //System.ut.printn("# f data = " + n); 29 fr(int i=0; i < n; i++) { 30 int v = in.readint(); 31 System.ut.printn("f["+i+"] = " + v); 32 } 33 in.cse(); 34 } 자바입출력 40