第26章-ファイルの中のものを読んで書きたいなら、エオを知る必要があります.


I/O

  • JVM入力、出力
  • ファイルの読み取りまたは保存時に他のサーバまたはデバイスに送信する場合には
  • を使用する.

    ファイルクラス

  • クラスファイルおよびパス情報の制御
  • は、生成されたファイルオブジェクトが指すコンテンツが存在するか、ファイルがパスであるか、読み取り可能、書き込み可能、または実行可能なファイルオブジェクトがいつ変更されるかをチェックする機能を提供する.
  • は、パスの名前変更、削除、生成、および完全なパスの機能を提供します.
  • パスを指す場合は、ファイルリストのインポート、作成、削除などの機能があります.
  • JDK 7以降を使用する場合はjavaを使用します.io.ファイルパッケージでFilesクラスを使用するとより効果的です.ファイルをより効率的に処理するために作成され、既存の多くの欠点を補います.
  •     File클래스 : 객체를 생성하여 데이터를 처리
        Files클래스 : 모든 메소드가 static 으로 선언되어 있어서 별도의 객체를 생성할 필요 없다
    

    生成者

    File(File parent, String child) : 이미 생성되어 있는 File 객체(parent)와 
                                        그 경로의 하위 경로 이름으로 새로운 File객체 생성
    File(String pathname) : 지정한 경로 이름으로 file 객체 생성
    File(String parent, String child) : 상위 경로(parent)와 하위 경로(child)File 객체 생성
    File(URI uri) : URI에 따른 File 객체를 생성 
    
    ***** child라고 되어 있는 값은 경로가 될 수도 있고, 파일 이름이 될 수 있다. 

    ファイルのパスとステータスを確認する方法

    boolean exists() : 해당 경로가 존재하는지 
    boolean mkdir() : 디렉터리를 하나만 만든다
    boolean mkdirs() : 여러 개의 하위 디렉터리를 만든다
    boolean isDirectory() : 해당 객체가 경로를 나타내는지 
    boolean isFile() : 해당 객체가 파일을 나타내는지
    boolean isHidden() : 해당 객체가 숨긴 파일인지 
    boolean canRead() : 현재 수행중인 자바 프로그램이 해당 File객체에 읽을 수 있는 권한이 있는지 
    boolean canWrite() : 현재 수행중인 자바 프로그램이 해당 File객체에 쓸 수 있는 권한이 있는지
    boolean canExecute() : 현재 수행중인 자바 프로그램이 해당 File객체를 
                           실행할 수 있는 권한이 있는지, JAVA6부터 추가
    long lastModified() : 파일이나 경로가 언제 생성되었는지 long타입의 현재 시간 리턴 
    boolean delete() : 파일을 삭제 

    ファイルの処理方法

    boolean createNewFile()  : 파일 생성했는지 확인. 이미 존재하면 fale 리턴
                               IOException을 던진다
    File getAbsoluteFile(), File getCanonicalFile() : File 객체 리턴
    String getAbsolutePath(), String getCanonicalPath() : 전체 경로 String 리턴
    String getName() : 파일일 경우 파일의 이름, 경로는 전체 경로 리턴
    String getPath() : 경로+파일 이름 리턴
    String getPatent() : 객체가 File을 가리키고 있다면, 파일 이름을 제외한 경로만 리턴 

    ディレクトリリストチェックに使用するlistメソッド。

    static File[] listRoots() : JVM이 수행되는 OS에서 사용중인 파일 시스템의 
                                루트 디렉터리 목록을 File 배열로 리턴
    String[] list() : 현재 디렉터리의 하위 목록을 리턴
    String[] list(FilenameFilter filter) : 현재 디렉터리의 하위 목록 중,
                                           filter 조건에 맞는 목록 String 배열로 리턴
    File[] listFiles() : 현재 디렉터리의 하위에 있는 목록을 File 배열로 리턴
    File[] listFiles(FileFilter filter) :현재 디렉터리 하위 목록 중,
                                         filter조건에 맞는 목록 File 배열로 리턴
    File[] listFiles(filenameFilter filter) : 현재 리렉터리 하위 목록 중, 
                                              filter 조건에 맞는 목록 File배열로 리턴
                                              
    *** FileFilter,filenameFilter 인터페이스의 aceept메소드를 구현해야한다. 
    
    예시)
    public clss JPGFileFilter implements FileFilter {
    	@Override
        	public boolean accept(File file){
               if(file.isFile()){
                	String fileName = file.getName();
                    if(fileName.endWith(".jpg")) return true;
                }
                return false;
            }
    }
    
    예시)
    public class JPGFilenameFilter implements FilenameFilter {
    	@Override
        	public boolean accep(File file, String fileName){
                if(fileName.endWith(".jpg")) return true;
                return false;
            }
    }