1 / 32

7. File I/O Programming

7. File I/O Programming. 스트림 - 프로그래밍 관점에서는 “ 일차원적인 데이터의 흐름 ” 을 의미 - 자바 프로그램에서는 입력되고 출력되는 모든 데이터를 스트림 형태 - 입력스트림 ; 프로그램으로 들어오는 스트림 - 출력스트림 ; 프로그램에서 밖으로 나가는 스트림 - 문자스트림 ; 사람이 이해할 수 있는 문자로 구성된 스트림 (Writer, Reader class) - 바이트스트림 ; 사람이 보아서 알 수 없지만 프로그램에서 사용할 수 있는

Download Presentation

7. File I/O Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 7. File I/O Programming • 스트림 - 프로그래밍 관점에서는 “일차원적인 데이터의 흐름”을 의미 - 자바 프로그램에서는 입력되고 출력되는 모든 데이터를 스트림 형태 - 입력스트림; 프로그램으로 들어오는 스트림 - 출력스트림; 프로그램에서 밖으로 나가는 스트림 - 문자스트림; 사람이 이해할 수 있는 문자로 구성된 스트림 (Writer, Reader class) - 바이트스트림; 사람이 보아서 알 수 없지만 프로그램에서 사용할 수 있는 데이터로 구성된 스트림 (InputStream, OutputStream class) High level GUI Programming (1)

  2. Java io Interface (1) DataInput() - 바이트 정보를 읽어서 다른 타입의 정보로 변환하는 입력 스트림을 위한 인터페이스 (2) DataOutput() - 자바에서 지원하는 타입 객체를 바이트 스트림으로 변환해 출력할 수 있도록 지원하는 클래스 • Java io Class (1) ByteArrayInputStream - 바이트 형 정보의 입력 스트림을 구현한 클래스 (2) ByteArrayOutputStream - 바이트 형 정보의 출력 스트림을 구현한 클래스 High level GUI Programming (1)

  3. (3) DataInputStream - 바이트 정보를 읽어서 다른 타입의 정보로 변환할 수 있도록 만든 입력 스트림 클래스 (4) DataOutputStream - 자바에서 지원하는 타입 객체를 바이트 스트림으로 변환해 출력할 수 있도록 만든 출력 스트림 클래스 (5) InputStream - 입력 스트림들이 상속받아야 할 추상 클래스 (6) OutputStream - 출력 스트림들이 상속받아야 할 추상 클래스 (7) InputStreamReader - 바이트 입력 스트림을 문자 스트림으로 변환해주는 클래스 High level GUI Programming (1)

  4. (8) OutputStreamWriter - 유니코드로 된 내부 문자열을 KSC5601과 같은 형식의 문자열로 변환 하여 출력하는 출력 스트림 (9) PrintStream - 다른 출력 스트림에 새로운 라인 값을 덧붙여 출력하기 등 출력에 대한 여러 부가적인 기능을 덧붙이는 출력 스트림 (10) Reader - 바이트 입력 스트림을 문자 스트림으로 변환해 주는 클래스를 위한 추상 클래스 (11) Writer - 유니코드로 된 내부 문자열을 KSC5601과 같은 형식의 문자열로 변환 하여 출력하는 출력 스트림의 추상 클래스 - KSC5601 코드 : 한글 완성형코드 (http://www.unicode.org참조) High level GUI Programming (1)

  5. Java io Exception (1) EOFException - 입력 스트림에서 더 이상 읽을 정보가 없을 때 발생하는 exception (2) InterruptedIOException - 입출력 동작이 쓰레드의 갑작스런 종료 등과 같은 이유로 중단되었을 때 발생하는 exception (3) IOException - 입출력 동작에서 오류가 발생했을 때 발생하는 exception (4) UnavailableException - 리소스를 얻을 수 없을 때 발생하는 exception (5) UnsupportedEncodingException - 바이트를 문자로 변환하거나 문자를 바이트로 변환할 때 사용하는 디코딩이나 인코딩 방식을 VM이 지원하지 않을 때 발생 (6) UTFDataFormatException - UTF8 문자가 형식을 제대로 따르지 않았을 때 발생하는 exception High level GUI Programming (1)

  6. File 클래스 - WIPI에서 제공하는 파일 클래스 중 하나 - 파일에 대한 읽기/쓰기와 같은 기본적인 기능과 Stream 기능 지원을 위한 클래스로서 파일을 생성하고 관리하는 역할  파일에 접근하기 위한 3가지 접근권한 (flag) (1) FileSystem.PRIVATE_ACCESS (플래그 값 : 1) - 응용프로그램 자신만이 접근할 수 있는 디렉터리를 접근하고자 할 때 쓰는 플래그 (2) FileSystem.SHARED_ACCESS (플래그 값 : 2) - 공유할 수 있는 디렉터리를 접근하고자 할 때는 쓰는 플래그 (3) FileSystem.SYSTEM_ACCESS (플래그 값 : 3) - 시스템 응용프로그램이 사용하는 디렉터리를 접근하고 할 때 쓰는 플래그 High level GUI Programming (1)

  7.  파일모드 (mode) (1) READ_ONLY (상수 : 1) - 파일을 읽기만 할 목적으로 연다. 입력 스트림은 하나만 열 수 있고 출력 스트림은 열지 못함 (2) WRITE_ONLY (상수 : 2) - 파일을 쓰기만 할 목적으로 연다. 파일이 이미 존재할 경우 파일 제일 끝부터 쓰게 된 (3) WRITE_TRUNC (상수 : 3) - 파일을 쓰기만 할 목적으로 연다. 파일이 이미 존재할 경우 내용은 모두 지워지고 파일의 처음부터 새로 쓰기 시작함 (4) READ_WRITE (상수 : 4) - 파일의 읽기와 쓰기를 동시에 할 목적으로 연다. High level GUI Programming (1)

  8.  File 클래스 생성자 (1) File(String filename, int mode) - 응용프로그램 자신만의 디렉터리에 지정된 파일을 생성 - filename : 열고자 하는 파일의 절대경로 (2) File(String filename, int mode, int flag) - 접근하려는 권한(flag)와 접근의도(mode)에 따라 파일 생성 - mode와 flag는 앞부분 참조  File 클래스 주요 메소드 (1) public void close( ) - 파일을 닫는다. (2) public DataInputStream openDataInputStream( ) - DataInputStream를 가져온다. (3) public DataOutputStream openDataOutputStream( ) - DataOutputStream을 가져온다. High level GUI Programming (1)

  9. (4) public InputStream openInputStream( ) - InputStream을 가져온다. (5) public OutputStream openOutputStream( ) - OutputStream을 가져온다. (6) public int read(byte[] buf) - input stream으로부터 데이터를 읽어 들인다. (7) public int read(byte[] buf, int off, int len) - input stream으로부터 데이터를 len 바이트 수만큼 읽어 들인다. (8) public void seek(int pos) - 파일 포인터를 특정 위치로 옮긴다. (9) public int sizeOf( ) - 파일의 크기를 알려준다. (10) public int write(byte[] buf) - 파일의 buf에 들어 있는 데이터를 buf의 길이만큼 쓴다. High level GUI Programming (1)

  10. (11) public int write(byte[] buf, int off, int len) - 파일의 buf에 들어 있는 데이터를 off부터 시작해서 len만큼 쓴다. (12) public int write(int b) - 파일에 한 바이트만 쓸 때 사용한다. High level GUI Programming (1)

  11. High level GUI Programming (1)

  12. High level GUI Programming (1)

  13. - 파일은 C:\W\pri 디렉터리 참조 High level GUI Programming (1)

  14. High level GUI Programming (1)

  15. FileSystem 클래스 - 파일의 생성, 삭제, 변경 등을 관리해주는 클래스로서 인스턴스 없이 static 으로 바로 사용가능하나 모든 파일 또는 디렉터리 경로는 모두 절대적인 경로로 설정해야 함 (사용자가 임의로 변경 불가)  FileSystem 주요 메소드 (1) public static int available( ) - 응용프로그램이 사용할 수 있는 공간이 얼마나 남았는지 알려줌 (2) public static boolean exists(String name) - 응용프로그램 자신만의 디렉터리의 파일, 디렉터리가 존재하는지를 확인 (3) public static boolean exists(String name, int flag) - 지정된 디렉터리 아래 파일이나 디렉터리가 존재하는지를 확인 (4) public static int getCreationTime(String name) - 응용프로그램 자신만의 디렉터리에 있는 파일의 생성시간을 알려줌 High level GUI Programming (1)

  16. (5) public static int getCreationTime(String name, int flag) - 파일의 생성 시간을 알려줌 (6) public static int getMaxFilenameLength( ) - 사용할 수 있는 파일이름의 최대길이를 확인 (7) public static boolean isDirectory(String name) - 응용프로그램 자신만의 디렉터리에 있는 디렉터리인지를 확인 (8) public static boolean isDirectory(String name, int flag) - 디렉터리인지를 확인 (9) public static boolean isFile(String name) - 응용프로그램 자신만의 디렉터리에 지정된 이름의 파일이 존재하는지 확인 (10) public static boolean isFile(String name, int flag) - 지정된 이름의 파일이 존재하는지 확인 High level GUI Programming (1)

  17. (11) public static Vector list(String dirname) - 응용프로그램 자신만의 디렉터리 안에 있는 파일과 디렉터리를 모두 보여줌 (12) public static Vector list(String dirname, int flg) - 지정된 디렉터리 안에 있는 파일과 디렉터리를 모두 보여줌 (13) public static void mkdir(String dirname) - 응용프로그램 자신만의 디렉터리에 디렉터리를 만듦 (14) public static void mkdir(String dirname, int flag) - 디렉터리를 만듦 (15) public static void remove(String filename) - 응용프로그램 자신만의 디렉터리의 파일을 지움 (16) public static void remove(String filename, int flag) - 파일을 지움 High level GUI Programming (1)

  18. (17) public static void rename(String oldName, String newName) - 응용프로그램 자신만의 디렉터리 내에 있는 파일의 이름을 변경 (18) public static void rename(String oldName, String newName, int flag) - 파일 이름을 변경 (19) public static void rmdir(String dirname) - 응용프로그램 자신만의 디렉터리에 있는 디렉터리를 지움 (20) public static void rmdir(String dirname, int flag) - 디렉터리를 지움 (21) public static byte[] toCString(String iStr) - Java String을 C String으로 변경 (22) public static int totalSpace( ) - 하드웨어의 디스크 공간을 알려줌 <참고> - 파라미터에 flag가 없는 것은 PRIVATE_ACCESS이거나 필요 없는 경우 High level GUI Programming (1)

  19. High level GUI Programming (1)

  20. High level GUI Programming (1)

  21. High level GUI Programming (1)

  22. High level GUI Programming (1)

  23. High level GUI Programming (1)

  24. High level GUI Programming (1)

  25. High level GUI Programming (1)

  26. High level GUI Programming (1)

  27. High level GUI Programming (1)

  28. High level GUI Programming (1)

  29. High level GUI Programming (1)

  30. High level GUI Programming (1)

  31. High level GUI Programming (1)

  32. High level GUI Programming (1)

More Related