PowerPoint 프레젠테이션

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

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Java

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

JAVA PROGRAMMING 실습 09. 예외처리

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

설계란 무엇인가?

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

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

Microsoft PowerPoint - 04-UDP Programming.ppt

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

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

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

Microsoft PowerPoint - 03-TCP Programming.ppt

PowerPoint Presentation

Network Programming

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Cluster management software

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

슬라이드 1

Cluster management software

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - CSharp-10-예외처리

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

PowerPoint 프레젠테이션

rmi_박준용_final.PDF

PowerPoint Presentation

PowerPoint Presentation

4장.문장

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

12-file.key

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

제11장 자바 입출력

PowerPoint Presentation

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

Microsoft PowerPoint - java2-lab2-DirectoryImageConverter.pptx

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

제11장 프로세스와 쓰레드

PowerPoint 프레젠테이션

자바-11장N'1-502

PowerPoint Presentation

PowerPoint Presentation

02 C h a p t e r Java

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

PowerPoint 프레젠테이션

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Design Issues

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

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

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

PowerPoint 프레젠테이션

C++ Programming

Java ...

Network Programming

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

The Pocket Guide to TCP/IP Sockets: C Version

예제 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

PowerPoint Presentation

PowerPoint Presentation

Semantic Consistency in Information Exchange

쉽게

12 장파일입출력 파일입출력의기초파일열기, 사용하기, 닫기파일입출력모드문자단위파일입출력텍스트파일과이진파일 read, write 함수에의한이진파일입출력임의접근입출력스트림상태입출력연산자오버로딩과파일입출력 C++ 프로그래밍입문

Spring Boot/JDBC JdbcTemplate/CRUD 예제

gnu-lee-oop-kor-lec10-1-chap10

Microsoft PowerPoint - 2강

JAVA PROGRAMMING 실습 05. 객체의 활용

슬라이드 1

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint Template

윤성우의 열혈 TCP/IP 소켓 프로그래밊

문서의 제목 나눔고딕B, 54pt

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

슬라이드 1

Microsoft PowerPoint - [EEL2] Lab10.pptx

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

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

Microsoft PowerPoint - chap11.ppt [호환 모드]

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

Microsoft PowerPoint - ch09_파이프 [호환 모드]

2009년 상반기 사업계획

PowerPoint 프레젠테이션

Microsoft PowerPoint - lec7_package [호환 모드]

Transcription:

명품 JAVA Essential 1

2 학습목표 1. 자바의입출력스트림에대한이해 2. 텍스트파일입출력 3. 바이너리파일입출력 4. File 클래스로파일속성알아내기 5. 파일복사응용사례

자바의입출력스트림 3 자바의입출력스트림 입출력장치와자바응용프로그램연결 입력스트림 : 입력장치로부터자바프로그램으로데이터를전달하는객체 출력스트림 : 자바프로그램에서출력장치로데이터를보내는객체 특징 입출력스트림기본단위 : 바이트 단방향스트림, 선입선출구조 자바프로그램개발자는직접입력장치에서읽지않고입력스트림을통해읽으며, 스크린등출력장치에직접출력하지않고출력스트림에출력하면된다.

자바의입출력스트림종류 4 문자스트림 문자만입출력하는스트림 문자가아닌바이너리데이터는스트림에서처리하지못함 문자가아닌데이터를문자스트림으로출력하면깨진기호가출력 바이너리파일을문자스트림으로읽으면읽을수없는바이트가생겨서오류발생 예 ) 텍스트파일을읽는입력스트림 바이트스트림 입출력데이터를단순바이트의흐름으로처리 문자데이터든바이너리데이터든상관없이처리가능예 ) 바이너리파일을읽는입력스트림

5 문자스트림과바이트스트림의흐름비교

JDK 의바이트스트림클래스계층구조 6 클래스이름이공통적으로 Stream 으로끝남

JDK 의문자스트림클래스계층구조 7 클래스이름이공통적으로 Reader/Writer 로끝남

스트림연결 8 여러개의스트림을연결하여사용할수있음 예 ) 키보드에서문자를입력받기위해 System.in과 InputStreamReader를연결한코드 InputStreamReader rd = new InputStreamReader(System.in); while(true) { int c = rd.read(); // 입력스트림으로부터키입력. c 는입력된키문자값 if(c == -1) // 입력스트림의끝을만나는경우 break; // 입력종료

문자스트림으로텍스트파일읽기 9 텍스트파일을읽기위해문자스트림 FileReader 클래스이용 1. 파일입력스트림생성 ( 파일열기 ) 스트림을생성하고파일을열어스트림과연결 FileReader fin = new FileReader("c:\\test.txt"); 2. 파일읽기 read() 로문자하나씩파일에서읽음 int c; while((c = fin.read())!= -1) { // 문자를 c 에읽음. 파일끝까지반복 System.out.print((char)c); // 문자 c 화면에출력 3. 스트림닫기 스트림이더이상필요없으면닫아야함. 닫힌스트림에서는읽을수없음 close() 로스트림닫기 fin.close();

파일입출력과예외처리 10 파일입출력동안예외발생가능 스트림생성동안 : FileNotFoundException 발생가능 파일의경로명이틀리거나, 디스크의고장등으로파일을열수없음 FileReader fin = new FileReader("c:\\test.txt"); // FileNotFoundException 발생가능 파일읽기, 쓰기, 닫기를하는동안 : IOException 발생가능 디스크오동작, 파일이중간에깨진경우, 디스크공간이모자라서파일입출력불가 int c = fin.read(); // IOException 발생가능 try-catch 블록반드시필요 자바컴파일러의강제사항 생략가능. FileNotFoundException 은 IOException 을상속받기때문에아래의 catch 블록하나만있으면됨 try { FileReader fin = new FileReader("c:\\test.txt");.. int c = fin.read();... fin.close(); catch(filenotfoundexception e) { System.out.println(" 파일을열수없음 "); catch(ioexception e) { System.out.println(" 입출력오류 ");

11 FileReader 의생성자와주요메소드

예제 13-1 : FileReader 로텍스트파일읽기 12 FileReader 를이용하여 c:\windows\system.ini 파일을읽어화면에출력하는프로그램을작성하라. system.ini 는텍스트파일이다.. import java.io.*; public class FileReaderEx { public static void main(string[] args) { FileReader in = null; try { in = new FileReader("c:\\windows\\system.ini"); int c; while ((c = in.read())!= -1) { // 한문자씩파일끝까지읽는다. System.out.print((char)c); in.close(); catch (IOException e) { System.out.println(" 입출력오류 "); 파일끝을만나면 -1 리턴 ; for 16-bit app support [386Enh] woafont=dosapp.fon EGA80WOA.FON=EGA80WOA.FON EGA40WOA.FON=EGA40WOA.FON CGA80WOA.FON=CGA80WOA.FON CGA40WOA.FON=CGA40WOA.FON [drivers] wave=mmdrv.dll timer=timer.drv [mci]

문자스트림으로텍스트파일쓰기 13 텍스트파일에쓰기위해문자스트림 FileWriter 클래스이용 1. 파일출력스트림생성 ( 파일열기 ) 스트림을생성하고파일을열어스트림과연결 FileWriter fout = new FileWriter("c:\\test.txt"); 2. 파일쓰기 write() 로문자하나씩파일에기록 fout.write('a'); // 문자 'A' 를파일에기록 블록단위로쓰기가능 char [] buf = new char [1024]; fout.write(buf, 0, buf.length); // buf[0] 부터버퍼크기만큼쓰기 3. 스트림닫기 close() 로스트림닫기 fout.close(); // 스트림닫기. 더이상스트림에기록할수없다.

14 FileWriter 의생성자와주요메소드

예제 13-2 : FileWriter 를이용하여텍스트파일쓰기 15 사용자로부터입력받은텍스트를 c:\tmp\test.txt 파일에저장하는프로그램을작성하라. 사용자는키입력후라인첫위치에 ctrl-z 키 (EOF) 를입력하라. import java.io.*; <Enter> 키 public class FileWriterEx { public static void main(string[] args) { InputStreamReader in = new InputStreamReader(System.in); ctrl-z 키입력 실행결과 test.txt 파일생성 FileWriter fout = null; int c; try { fout = new FileWriter("c:\\tmp\\test.txt"); while ((c = in.read())!= -1) { fout.write(c); // 키보드로부터받은문자를파일에저장 in.close(); fout.close(); catch (IOException e) { System.out.println(" 입출력오류 ");

바이트스트림으로바이너리파일쓰기 16 바이너리값을파일에저장하기 프로그램내의변수, 배열, 버퍼에든바이너리값을파일에그대로기록 FileOutputStream 클래스이용 1. 파일출력스트림생성 ( 파일열기 ) 스트림을생성하고파일을열어스트림과연결 FileOutputStream fout = new FileOutputStream("c:\\test.out"); 2. 파일쓰기 write() 로문자하나씩파일에기록 byte b[] = {7,51,3,4,-1,24; for(int i=0; i<b.length; i++) fout.write(b[i]); // 배열 b 를바이너리그대로기록 3. 스트림닫기 close() 로스트림닫기 test.out 파일내부

17 FileOutputStream 의생성자와주요메소드

예제 13-3 : FileOutputStream 으로바이너리파일쓰기 18 FileOutputStream 을이용하여 byte [] 배열속에들어있는바이너리값을 c:\test.out 파일에저장하라. 이파일은바이너리파일이된다. 이파일은예제 13-4 에서읽어출력할것이다. import java.io.*; public class FileOutputStreamEx { public static void main(string[] args) { byte b[] = {7,51,3,4,-1,24; try { FileOutputStream fout = new FileOutputStream("c:\\test.out"); for(int i=0; i<b.length; i++) fout.write(b[i]); // 배열 b 의바이너리를그대로기록 fout.write(b); 한줄로코딩가능 fout.close(); catch(ioexception e) { System.out.println("c:\\test.out 을저장하였습니다."); c:\test.out 을저장하였습니다. test.out 파일내부

바이트스트림으로바이너리파일읽기 19 바이너리파일에서읽기위해 FileInputStream 클래스이용 1. 파일입력스트림생성 ( 파일열기 ) 스트림을생성하고파일을열어스트림과연결 FileInputStream fin = new FileInputStream("c:\\test.out"); 2. 파일읽기 read() 로문자하나씩파일에서읽기 int n=0, c; while((c = fin.read())!= -1) { b[n] = (byte)c; // 읽은바이트를배열에저장 n++; 블록단위로읽기가능 fin.read(b); // 배열 b 의바이트크기만큼바이너리그대로읽기 3. 스트림닫기 close() 로스트림닫기

20 FileInputStream 의생성자와주요메소드

예제 13-4 : FileInputStream 으로바이너리파일읽기 21 FileInputStream 을이용하여 c:\test.out 파일 ( 예제 13-3 에서저장한파일 ) 을읽어바이너리값들을 byte [] 배열속에저장하고화면에출력하라. test.out 파일내부 import java.io.*; public class FileInputStreamEx { public static void main(string[] args) { byte b[] = new byte [6]; // 비어있는 byte 배열 try { FileInputStream fin = new FileInputStream("c:\\test.out"); int n=0, c; while((c = fin.read())!= -1) { b[n] = (byte)c; // 읽은바이트를배열에저장 n++; System.out.println("c:\\test.out 에서읽은배열을출력합니다."); for(int i=0; i<b.length; i++) System.out.print(b[i]+" "); System.out.println(); fin.close(); catch(ioexception e) { c:\test.out 에서읽은배열을출력합니다. 7 51 3 4-1 24

File 클래스 22 File 클래스 파일의경로명및속성을다루는클래스 java.io.file 파일과디렉터리경로명의추상적표현 파일이름변경, 삭제, 디렉터리생성, 크기등파일관리 File 객체에는파일읽기 / 쓰기기능없음 파일입출력은파일입출력스트림이용 File 객체생성 생성자에파일경로명을주어 File 객체생성 File f = new File("c:\\tmp\\test.txt"); 디렉터리와파일명을나누어생성자호출 File f = new File("c:\\tmp", "test.txt");

23 File 클래스생성자와주요메소드

File 클래스활용 24 파일크기 long size = f.length(); 파일경로명 File f = new File("c:\\windows\\system.ini"); String filename = f.getname(); // "system.ini" String path = f.getpath(); // "c:\\windows\\system.ini" String parent = f.getparent(); // "c:\\windows" 파일타입 if(f.isfile()) System.out.println(f.getPath() + " 는파일입니다."); // 파일 else if(f.isdirectory()) System.out.println(f.getPath() + " 는디렉터리입니다."); // 디렉터리 c:\windows\system.ini 은파일입니다. 디렉터리파일리스트얻기 File f = new File("c:\\tmp"); File[] subfiles = f.listfiles(); // c:\tmp 의파일및서브디렉터리리스트얻기 for(int i=0; i<filenames.length; i++) { System.out.print(subfiles[i].getName()); // 서브파일명출력 System.out.println("\t 파일크기 : " + subfiles[i].length()); // 서브파일크기출력

예제 13-5 : File 클래스를활용한파일관리 25 File 클래스를이용하여, 파일타입및경로명알아내기, 디렉터리생성, 파일이름변경, 디렉터리의파일리스트출력등다양한파일관리사례를보여준다.. import java.io.file; public class FileClassExample { public static void listdirectory(file dir) { System.out.println("-----" + dir.getpath() + " 의서브리스트입니다.-----"); File[] subfiles = dir.listfiles(); for(int i=0; i<subfiles.length; i++) { File f = subfiles[i]; long t = f.lastmodified(); // 마지막으로수정된시간 System.out.print(f.getName()); System.out.print("\t 파일크기 : " + f.length()); // 파일크기 System.out.printf("\t 수정한시간 : %tb %td %ta %tt\n",t, t, t, t); public static void main(string[] args) { File f1 = new File("c:\\windows\\system.ini"); System.out.println( f1.getpath() + ", " + f1.getparent() + ", " + f1.getname()); String res=""; if(f1.isfile()) res = " 파일 "; else if(f1.isdirectory()) res = " 디렉토리 "; System.out.println(f1.getPath() + " 은 " + res + " 입니다."); File f2 = new File("c:\\tmp\\java_sample"); if(!f2.exists()) { f2.mkdir(); listdirectory(new File("c:\\tmp")); f2.renameto(new File("c:\\tmp\\javasample")); listdirectory(new File("c:\\tmp")); c:\windows\system.ini, c:\windows, system.ini c:\windows\system.ini은파일입니다. -----c:\tmp의서브리스트입니다.----- java_sample 파일크기 : 0 수정한시간 : 4월 28 월 18:31:02 song.txt 파일크기 : 20 수정한시간 : 5월 30 수 15:09:33 student.txt 파일크기 : 244 수정한시간 : 7월 08 월 21:46:47 tellephone.txt 파일크기 : 14 수정한시간 : 5월 13 월 12:38:11 wtc2-02f.mid 파일크기 : 4100 수정한시간 : 4월 01 금 05:18:54 -----c:\tmp의서브리스트입니다.----- javasample 파일크기 : 0 수정한시간 : 4월 28 월 18:31:02 song.txt 파일크기 : 20 수정한시간 : 5월 30 수 15:09:33 student.txt 파일크기 : 244 수정한시간 : 7월 08 월 21:46:47 tellephone.txt 파일크기 : 14 수정한시간 : 5월 13 월 12:38:11 wtc2-02f.mid 파일크기 : 4100 수정한시간 : 4월 01 금 05:18:54

예제 13-6 : 텍스트파일복사 26 문자스트림 FileReader와 FileWriter를이용하여 c:\windows\system.ini를 c:\tmp\system.txt 파일로복사하는프로그램을작성하라. import java.io.*; public class TextCopy { public static void main(string[] args){ File src = new File("c:\\windows\\system.ini"); // 원본파일경로명 File dest = new File("c:\\tmp\\system.txt"); // 복사파일경로명 int c; try { FileReader fr = new FileReader(src); // 파일입력문자스트림생성 FileWriter fw = new FileWriter(dest); // 파일출력문자스트림생성 while((c = fr.read())!= -1) { // 문자하나읽고 fw.write((char)c); // 문자하나쓰고 fr.close(); fw.close(); System.out.println( src.getpath()+ " 를 " + dest.getpath()+ " 로복사하였습니다."); catch (IOException e) { System.out.println(" 파일복사오류 "); c:\windows\system.ini 를 c:\tmp\system.txt 로복사하였습니다.

예제 13-7 : 바이너리파일복사 27 바이트스트림 FileInputStream 과 FileOutputStream 을이용하여이미지파일을복사하라. import java.io.*; public class BinaryCopy { public static void main(string[] args) { File src = new File( "c:\\users\\public\\pictures\\sample Pictures\\desert.jpg"); File dest = new File("c:\\tmp\\desert.jpg"); int c; try { FileInputStream fi = new FileInputStream(src); FileOutputStream fo = new FileOutputStream(dest); while((c = fi.read())!= -1) { fo.write((byte)c); fi.close(); fo.close(); System.out.println( src.getpath()+ " 를 " + dest.getpath()+ " 로복사하였습니다."); catch (IOException e) { System.out.println(" 파일복사오류 "); c:\users\public\pictures\sample Pictures\desert.jpg 를 c:\tmp\desert.jpg 로복사하였습니다.

예제 13-8 : 고속복사를위한블록단위바이너리파일복사 28 예제 13-7 을 10KB 씩읽고쓰도록수정하여고속으로파일을복사하라. import java.io.*; public class BlockBonaryCopy { public static void main(string[] args) { File src = new File( "c:\\users\\public\\pictures\\sample Pictures\\desert.jpg"); // 원본파일 File dest = new File("c:\\tmp\\desert.jpg"); // 복사파일 try { FileInputStream fi = new FileInputStream(src); // 파일입력바이트스트림생성 FileOutputStream fo = new FileOutputStream(dest); // 파일출력바이트스트림생성 byte [] buf = new byte [1024*10]; // 10KB 버퍼 while(true) { int n = fi.read(buf); // 버퍼크기만큼읽기. n 은실제읽은바이트 fo.write(buf, 0, n); // buf[0] 부터 n 바이트쓰기 if(n < buf.length) break; // 버퍼크기보다작게읽었기때문에파일끝에도달. 복사종료 fi.close(); fo.close(); System.out.println(src.getPath() + " 를 " + dest.getpath() + " 로복사하였습니다."); catch (IOException e) { System.out.println(" 파일복사오류 "); c:\users\public\pictures\sample Pictures\desert.jpg 를 c:\tmp\desert.jpg 로복사하였습니다.