Click here to load reader

자바 네트워크 프로그래밍 · PDF file 자바 네트워크 프로그래밍 (ocjp 국제공인자격증 취득 대비) 자바 Stream 의 2 가지 분류 FilterInputStream 과

  • View
    0

  • Download
    0

Embed Size (px)

Text of 자바 네트워크 프로그래밍 · PDF file 자바 네트워크 프로그래밍 (ocjp...

  • 자바 네트워크 프로그래밍 (OCJP 국제공인자격 취득 중심)

    충북대학교

    최민

  • 2

    File Class

    File 클래스

    파일의 읽고 쓰기를 제외하고 파일과 디렉토리에 대한 필요한 많은

    기능등을 제공

    파일과 디렉토리의 정보를 조사하고, 이들을 생성 및 삭제하는 메소

    드 등이 File 클래스에 포함

    File 클래스의 생성자

    File(File parent, String child)

    File(String pathname)

    File(String parent, String child)

    File(URI uri)

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 3

    File 클래스의 메소드 boolean exists() : 지정한 파일 또는 디렉토리가 존재하는지 여부를 리턴합니 다.

    boolean isDirectory() : 지정한 경로가 디렉토리인지의 여부를 리턴합니다.

    boolean isFile() : 지정한 경로가 파일인지의 여부를 리턴합니다.

    boolean canRead() : 지정한 파일이 읽기 가능한지의 여부를 리턴합니다.

    boolean canWrite() : 지정한 파일이 쓰기 가능한지의 여부를 리턴합니다.

    long length() : 파일의 길이를 리턴합니다.

    String[] list() : 해당 경로에 있는 파일과 디렉토리의 목록을 String 배열로 리 턴합니다.

    File[] listFiles() : 해당 경로에 있는 파일의 목록을 File 배열로 리턴합니다.

    String getName() : 해당 경로에 있는 파일이나 디렉토리의 이름을 리턴합니다.

    String getParent() : 해당 경로의 상위 디렉토리의 경로명을 리턴합니다.

    String getPath() : 인스턴스가 가지고 있는 경로명을 문자열로 리턴합니다.

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 4

    File 클래스의 메소드 boolean createNewFile() : 인스턴스가 가리키고 있는 이름대로 파일

    을 생성합니다.

    boolean delete() : 인스턴스가 가리키고 있는 파일 또는 디렉토리를

    삭제합니다.

    void deleteOnExit() : delete와 같은 일을 하지만 Vitrual Machine

    이 종료될 때 삭제가 일어납니다.

    boolean mkdir() : 인스턴스가 가리키고 있는 경로대로 디렉토리를 만

    듭니다.

    boolean mkdirs() : mkdir과 같은 일을 하지만, 디렉토리 구조 전체를

    만들어줍니다.

    boolean renameTo(File) : 기존 파일의 이름을 바꿉니다.

    boolean setReadOnly() : 해당 파일을 읽기 전용 파일로 만듭니다.

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 5

    [NOTE]

    File 클래스에 관한 OCJP 문제 출제 경향

    (가장 빈도가 높은 것) 메소드의 이름과 기능을 정확하게 알고 있는

    가에 관한 문제

    함정 문제가 많이 출제되므로 API 문서를 참고하시고 특히 메소드의

    이름을 잘 숙지.

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 6

    File의 사용

    인스턴스의 생성

    File file = new File("scjp.txt");

    파일의 존재 유무 확인

    File file = new File("scjp.txt");

    if(!file.exists()) {

    System.out.println(file.getName() + " is not exists!");

    System.exit(0);

    }

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 7

    파일 / 디렉토리 판정

    File file = new File("c:\windows");

    if(file.isDirectory()) System.out.println(file.getName() + " is a

    directory.");

    if(file.isFile()) System.out.println(file.getName() + " is a file.");

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 8

    파일의 경로 정보

    File 클래스의 주된 기능

    지정된 파일 또는 디렉토리에 관한 정보를 알려주는 기능

    특히, File 클래스를 통해 파일의 경로(path)에 관한 정보를 다양한

    형식으로 알아낼 수 있음.

    주요 메소드

    getPath() 메소드는 인스턴스를 만들때 생성자로 입력된 경로명을

    리턴 (abstract pathname이라고 합니다)

    getAbsolutePath() 메소드는 생성자로 입력된 경로명을 절대 경로로

    바꾸어서 리턴

    즉, 생성자로 입력된 경로명이 상대 경로일 경우에는 프로그램이 실

    행된 디렉토리를 기준으로 하여 절대 경로로 바꾸는 작업

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 9

    파일의 경로 정보 메소드는 얻어진 절대 경로를 시스템에서 사용하는 형식의 getCanonicalPath() 메소드는 좀더 정규화된 형태의 절대 경로를 리 턴하는 메소드

    getCanonicalPath() 절대 경로로 바꾸어 줌, 예를 들어 유닉스 시스 템의 경우 심볼릭 링크로 연결된 파일을 실제의 경로로 바꾸는 작업

    윈도우 시스템의 경우 드라이브 문자를 대문자로 바꾸어 주고 실제 존재하는 파일의 경우 대소문자까지 원래의 파일명과 같이 맞추어 줌(윈도우 시스템은 대소문자를 구별하기는 하지만 대소문자를 틀 리게 입력해도 같은 파일/폴더로 간주)

    따라서 getAbsolutePath() 보다 정확한 경로명을 리턴하는 getCanonicalPath()를 사용하기를 추천

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 10

    파일의 경로 정보 다만, getCanonicalPath() 메소드를 사용할 때에는 한가지 주의할 점

    경로를 알아내는 다른 명령어와는 달리 이 메소드는 시스템에 파일

    시스템 정보를 요청하기 때문에 IOException을 발생시킬수 있도록

    설계되었다는 점

    따라서 getCanonicalPath()를 사용할 때에는 반드시 IOException을

    처리(try-catch)하도록 해야 함.

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 11

    파일 및 디렉토리의 생성과 삭제, 변경

    File 클래스를 사용하여 파일이나 디렉토리를 생성

    우선 생성할 파일이나 디렉토리의 경로명으로 File 클래스 인스턴스

    를 생성

    File file = new File(생성할 파일 또는 디렉토리의 경로);

    파일을 만들기 위해서는 createNewFile(),

    디렉토리를 만들기 위해서는 mkdir()이나 mkdirs() 메소드를 사용

    이들 메소드는 이미 파일 객체가 경로명을 가지고 있기 때문에 아무

    런 파라미터도 전달하지 않아도 됨.

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 12

    파일 및 디렉토리의 생성과 삭제, 변경

    mkdir() 메소드와 mkdirs() 메소드의 차이 해당 디렉토리의 상위 디렉토리 구조가 없을 경우, 이를 만들어 주느 냐의 차이입니다. mkdirs() 메소드는 주어진 경로명에 포함된 모든 디렉토리 구조를 만들어 줌

    위의 예에서 아직 language나 java 디렉토리가 아직 없는 경우 mkdir() 메소드는 디렉토리를 만들지 못했음을 뜻하는 false를 리턴

    mkdirs() 메소드는 language나 java 디렉토리까지 전부 만들어 줌

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

    File dir = new File("language/java/scjp");

    dir.mkdir();

    dir.mkdirs();

  • 13

    파일 및 디렉토리의 생성과 삭제, 변경

    createTempFile()이라는 메소드

    createNewFile() 메소드와 성격은 약간 다르지만, 파일을 만드는 기

    능은 동일한 메소드

    static 메소드임 (따라서, 아래 예제와 같이 사용 가능)

    프로그램에서 사용하기 위한 임시 파일을 생성

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

    File file = File.createTempFile(파일명, 확장자);

    File file = File.createTempFile(파일명, 확장자, 디렉토리명);

  • 14

    파일 및 디렉토리의 생성과 삭제, 변경 import java.io.*;

    public class Test {

    public static void main(String[] args) throws IOException {

    File file = new File("scjp");

    System.out.println("the file exists : " + file.exists());

    file.createNewFile();

    System.out.println("File created.");

    System.out.println("the file exists : " + file.exists());

    if(file.isFile()) {

    System.out.println("this object is file.");

    } else if(file.isDirectory()) {

    System.out.println("this object is directory.");

    }

    }

    }

    자바 네트워크 프로그래밍 (OCJP 국제공인자격증 취득 대비)

  • 15

    import java.io.*;

    public class Test {

    public static void main(String[] args) throws

    IOException {

    File file = new File("abc/../pds/java");

    Syst

Search related