태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

사이드바 열기

File 클래스

 File클래스에는 일반 파일을 생성하는 기능을 제외한 이미 존재하는 파일에 대한 제어나 특수한 파일인 디렉토리를 생성하는 기능이 지원된다. 파일이라는 객체와 관련된 동작에 대한 메서드들은 모두 이 클래스에서 지원된다.


>>> File
클래스 관련 예제 (파일이 있는지 없는지 확인)<<<

import java.io.*;

import java.util.*;

public class FileInfo{

    public static void main(String args[]){

        File f=new File("D:/StudyII/Java/Example/File",args[0]);

        if(f.exists())            //파일이 존재하면

            System.out.println("Existed!!");

        else

            System.out.println("Not Found!!");

        }

   }

결과

c:\Test>jva FileInfo 파일명

있으면 ?? 없으면 ??


>>> File클래스 관련 예제 (디렉토리 안의 파일 열기)<<<

import java.io.*;

import java.util.*;

public class FileInfo2{

    public static void main(String args[]){

        File f=new File(args[0]);

        if(f.isDirectory()){

            String list[]=f.list();

            for(int i=0; i<list.length; i++)

                System.out.println(list[i]);

        }else

                System.out.println("Not a Directory!!");

    }

}

결과

c:\Test>java FileInfo2 Test

Test가 디렉토리라면 디렉토리 안의 파일 열거

Test가 디렉토리가 아니면 Not a Directory


>>> File클래스 관련 문제 (마지막 수정된 날짜 표시하기)<<<

import java.io.*;

import java.util.*;

public class FileTest1{

    public static void main(String args[]){

        File f=new File("D:/StudyII/Java/Example/File/Test");

        File[] contents=f.listFiles();

        System.out.println("File디렉토리에 들어있는 "+contents.length+"개의 항목");

      

        for(int i=0; i<contents.length; i++){

            System.out.println(contents[i]+""+new Date(contents[i].lastModified())+"에 수정된 "+

            (contents[i].isDirectory()?"디렉토리이다.":"파일이다.")

    );
        }
    }

}


>>> File클래스 관련 문제 <<<

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Lab1 : 구구단을 출력할 파일명과 단을 각각 인수로 입력받아 File클래스를 이용하여 파일을

생성하고 새로운 파일에 구구단이 아래와 같이 출력되는 소스를 작성한다.

---------------------------------------------------------------------------------------------------------

c:\Test>java FileTest2 2 2Dan.txt
< 2Dan.txt >안에 2단 구구단 출력
---------------------------------------------------------------------------------------------------------
import java.io.*;

import java.util.*;

public class FileTest2{

    public static void main(String args[]){

        String dan=args[0];

        try{

            FileWriter bw=new FileWriter(args[1]);

            for(int i=1; i<10; i++){

            bw.write(dan+"*"+i+"="+(Integer.parseInt(dan)*i)+"\n");

                }

            bw.close();

        }catch(IOException e){

            System.out.println(e);

        }

    }

}


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Lab2 : 디렉토리명을 사용자로부터 입력받아 아래처럼 디렉토리를 생성하는 소스를 작성한다.

--------------------------------------------------------------------------------------------------------------------

import java.io.*;

class Test{

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

       System.out.println("디렉토리 생성하기!");

        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        String directoryName=br.readLine();

        File f=new File(directoryName);

        if(f.mkdir()){

            System.out.println("디렉토리 '"+directoryName+"' 생성됨!");

        }else{

            System.out.println("디렉토리 '"+directoryName+"' 생성되지 않음!");

        }

    }

}


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Lab3 : 아래와 같이 출력되도록 소스를 작성한다.

---------------------------------------------------------------------------------------------------------

c:\Test>java Test
파일경로구분자 ==> ;
디렉토리구분자 ==> \
루트 디렉토리 ==> C:\
루트 디렉토리 ==> D:\
현재 디렉토리 ==> C:\\.
----------------------------------------------------------------------------------------------------------
import java.io.*;

public class Test{

    public static void main(String args[]){

        System.out.println("파일경로구분자 ==> "+File.pathSeparator);

        System.out.println("디렉토리구분자 ==> "+File.separator);

        File[] root=File.listRoots();

        for(File f:root){

            System.out.println("루트 디렉토리 ==> "+f);

        }

        System.out.println("현재 디렉토리 ==> "+new File(".").getAbsolutePath());

    }

}


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Lab3 : 아래 실행결과처럼 Root File(드라이버명)file, 디렉토리명이 찍히도록 소스를 작성한다.

, 디렉토리는 대괄호를 씌워서 구분짓는다. 모든 드라이버명 다 출력

---------------------------------------------------------------------------------------------------------

c:\Test>java ExListRoots
A:\
C:\
       abc.txt
       [AromaWIPI]
       boot.ini
----------------------------------------------------------------------------------------------------------

import java.io.*;

class ExListRoots{

public static void main(String args[]){

File[] rootFile=File.listRoots();

for(int i=0; i<rootFile.length; i++){

System.out.println(rootFile[i]);

if(rootFile[i].toString().startsWith("C:")){

File[] fileName=rootFile[i].listFiles();

for(int j=0; j<fileName.length; j++){

if(fileName[j].isFile())

                                        System.out.println("\t"+fileName[j].getName());

else

                                         System.out.println("\t["+fileName[j].getName()+"]");

}

}

}

}

}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Lab4 : 파일의 확장명이 java인것 파일만 출력되도록 소스를 작성한다.

---------------------------------------------------------------------------------------------------------

import java.io.*;
public class FileTest{
    public static void main(String args[]) throws Exception{
        File f=new File("c:\\");
        String files[]=f.list();
        for(int i=0 ; i<files.length ; i++){
            if(files[i].endsWith(".java"))
                System.out.println(files[i]);
            }
        }
}


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Lab5 : 파일이름에 “Li”를 포함하는 파일만 출력되도록 소스를 작성한다.

---------------------------------------------------------------------------------------------------------

import java.io.*;

public class FileTest{

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

        File f=new File("c:\\");

        String files[]=f.list();

for(int i=0; i<files.length; i++){

if(files[i].indexOf("Li") != -1)      //indexOf()가 -1이면 찾는 문자열이 없음

                                                                System.out.println(files[i]);

}

}

}


FilenameFilter

 파일의 이름을 필터링할 수 있는 기능을 가진 인터페이스

만약 어떤 디렉토리의 파일들의 목록을 읽어서 확장자가 .java로 끝나는 파일들만 검색하고 싶다면 다음과 같이 해주어야 한다.

FilenameFilter인터페이스를 구현하는 클래스를 만들고 accept()를 만든다.

File객체의 list()를 이용해서 원하는 디렉토리의 해당 파일 목록을 구한다.


>>> FilenameFilter인터페이스 관련 예제 <<<

import java.io.*;

class MyFilter implements FilenameFilter{

    public boolean accept(File dir, String fileName){

        return fileName.endsWith(".java");

        }

    }

public class FilterEx{

    public static void main(String args[]){

        FilterEx fe=new FilterEx();

        fe.test();

    }

    public void test(){

        File dir=new File("c:\Test");

        MyFilter filter=new MyFilter();

        File[] files=dir.listFiles(filter);

        for(int i=0; i<files.length; i++)

            System.out.println("File Name : "+files[i].getName());

    }

}

결과

c:\Test>java FileterEx

File Name : TbarApplet.java


>>> FilenameFilter인터페이스 관련 예제 <<<

import java.io.*;

class MyFilter implements FilenameFilter{

    private String keyword;

    private String fileExt;

   

    public MyFilter(String keyword, String fileExt){

        this.keyword=keyword;

        this.fileExt=fileExt;

    }

    public boolean accept(File dir, String fileName){

        if(fileExt.equals("all"))

            fileExt="\\w*";

        return fileName.matches("\\w*"+keyword+"\\w*."+fileExt);

    }

}

public class FilterEx{

    public static void main(String args[]){

        FilterEx fe=new FilterEx();

        fe.test();

    }

    public void test(){

        File dir=new File("c:\Test");

        MyFilter filter=new MyFilter("Test","java");

        File[] files=dir.listFiles(filter);

        for(int i=0; i<files.length; i++)

            System.out.println("File Name : "+files[i].getName());

    }

}

결과

c:\Test>java FileterEx

File Name : ArrayTest.java

File Name : EventTest.java

Posted by heresyrt
이전페이지 1 2 3 4 5 6 7 8 ... 60 다음페이지
위로

사이드바 열기