ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [21회차-①] JAVA (File)
    JAVA 2021. 4. 21. 21:30

    강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정

    강의 날짜 : 21.04.20

     

     

    <파일>

     

    1. File 예제 1

    import java.io.File;
    import java.io.IOException;
    
    public class Ex02 {
    
    	public static void main(String[] args) throws IOException{
    		
    		File f = new File("D:/jwork/april20th/Ex01.java");
    		String fileName = f.getName();
    		int pos = fileName.lastIndexOf(".");
    		
    		System.out.println("경로를 제외한 파일이름 - "+f.getName());
    		System.out.println("확장자를 제외한 파일이름 - "+fileName.substring(0,pos));
    		System.out.println("확장자 - "+fileName.substring(pos+1));
    		System.out.println("경로를 포함한 파일이름 - "+f.getPath());
    		System.out.println("파일의 절대 경로 - "+f.getAbsolutePath());
    		System.out.println("파일이 속해있는 디렉토리 - "+f.getParent());
    		System.out.println("File.separator - "+File.separator);
    		System.out.println("File.separatorChar - "+File.separatorChar);
    		System.out.println("user.dor= "+System.getProperty("user.dir"));		
    	}
    }

     

     

    * File의 객체를 만들고 파라미터로 경로를 String형으로 넘겨주면 객체는 이것을 File로 인식한다.

     

    * user.dir은 사용자가 현재 사용하는 디렉토리를 의미한다.

    바로 패키지 단위이다!!

     

     

    * File형식으로 주면 / 는 디렉토리 구분자 . 는 확장자 구분자로 인식한다.

    웹 기준으로 컴퓨터는 공백이 들어갈 수 없기 때문에 구분자 . 를 이용하여 파일명과 확장자를 구분한다.(Windows)

    그러나 리눅스나 유닉스는 확장자가 없기 때문에 디렉토리 구분자를 /로 한다.

     

    File 클래스의 명령어 설명
    .getname() 파일 이름 반환
    .lastIndexOf(String 구분자) 구분자의 인덱스를 반환(뒤에서부터 찾는다)
    .substring(시작 인덱스,
    마지막 인덱스)
    시작 인덱스부터 (마지막 인덱스-1)까지 문자열 반환
    .getPath()  전체 경로 반환
    .getAbsolutePath() 절대 경로 반환(root 디렉토리부터)
    .getParent() 속해있는 상위의 디렉토리를 모두 반환
    .separator 상위와 구분하는 구분자 반환
    .separatorChar 상위와 구분하는 구분자 반환
    .getProperty("키워드") 키워드의 속성을 가져와서 반환

     

     

    2. File 예제 2

     

    import java.io.File;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Ex03 {
    
    	public static void main(String[] args) {
    		
    		String currDir = System.getProperty("user.dir");
    		File dir = new File(currDir);
    		File[] files=dir.listFiles();
    		
    		for(int i=0; i<files.length;i++) {
    			File f =files[i];
    			String name = f.getName();
    			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mma");
    			String attribute="";
    			String size="";
    			if(files[i].isDirectory()) {
    				attribute="DIR";
    			}else {
    				size=f.length()+"";
    				attribute = f.canRead()? "R":" ";
    				attribute += f.canWrite()? "W":" ";
    				attribute += f.isHidden()? "H":" ";
    			}	
    			System.out.printf("%s %3s %6s %s\n",df.format(new Date(f.lastModified())),attribute,size,name);
    		}
    	}
    }

     

     

    user.dir로 현재 패키지에 관한 정보를 String 형태의 객체로 받아온 후,

    그것을 파라미터로 File 클래스의 객체를 생성한다.

     

    그것을 listFiles()메소드로 해당 패키지 안의 파일들을 리스트화한 후 배열에 넣어준다.

     

    이후 그 파일 하나하나에 대한 정보를 묻는다.

     

     File 클래스의 명령어 설명
    .isDirectory() 디렉토리인지 묻는 메소드(폴더인지)
    .canRead() 읽을 수 있는 파일인지 묻는 메소드
    .canWrite() 쓰는 기능이 있는 파일인지 묻는 메소드
    .isHidden() 숨겨진 파일인지 묻는 메소드
    .lastModified() 수정된 가장 최근의 날짜를 반환하는 메소드

     

     

    3. 디렉토리 생성

     

    import java.io.File;
    
    public class Ex04 {
    
    	public static void main(String[] args) {
    		
    		try {
    			boolean result = new File("D:/jwork/april20th/temp").mkdir();
    			String[] listing = new File("D:/jwork/april20th").list();
    			
    			for(String x : listing) {
    				System.out.println("폴더 내용 : "+x);
    			}
    		}catch (Exception e) { e.printStackTrace();}
    	}
    }

    파일 형태로 경로와 파일명을 준 후, mkdir()메소드로 디렉토리를 생성할 수 있다.

    만약 디렉토리 생성에 성공한다면 true를, 실패하면 false를 반환한다.

     

    이후 예제2 와 같은 방법으로 해당 패키지의 디렉토리 및 파일들을 확인해준다.

     

    외부 객체를 처리할 때 편집 등을 사용하지 않고 데이터를 읽어오기만 하면 파일에 한해서 예외처리를 하지 않아도 된다.

     

     

    4.  cmd에서 경로 찾기

     

    cmd 명령어 설명
    d: D드라이브로 디렉토리 변경
    cd  change directory
    \ ~밑에라는 의미로 윈도우에서 하위 경로를 표시한다.
    cd.. 바로 한 단계 위의 상위
    cd. 현재 위치
    cd\ root directory로 한번에 가기

     

    상대 경로 방식 : 경로를 찾아갈 때 현재 위치를 기준으로 해서 찾아내려가는 방식

    절대 경로 방식 : 경로를 찾아갈 때 root directory부터 찾으려는 파일까지 전체 경로를 주어 가는 방식

     

     

    5. cmd에서 디렉토리 및 파일을 생성하기

     

    cmd에서도 mkdir로 디렉토리를 생성할 수 있다.

     

    이후 dir명령어로 해당 디렉토리의 정보를 확인하여 abc라는 디렉토리가 생성된 것을 확인할 수 있다.

     

     

    rmdir 명령어로 디렉토리를 삭제할 수도 있다.

    다만 이 명령어는 디렉토리가 비어있을 때만 가능하다.

     

     

    copy con이라는 명령어로 파일 생성이 가능하다.

    확장자는 꼭 주지 않아도 상관없다. 그저 어느 어플리케이션으로 해당 파일을 볼 것인지 구분하기 위한 것이다.

     

    엔터를 치면 바로 밑으로 커서가 향하게 되는데 그곳에 입력하고자 하는 문장을 입력한다.

    컴퓨터는 이 입력한 것을 복사하여 파일을 생성하는 것이다.

     

    ctrl + z + enter를 누르면 파일이 복사되었다는 글이 화면에 출력된다.

    ctrl + z를 입력하면 ^Z가 나오는데 이것이 파일의 끝을 의미하는 NULL이다.(유니코드 -1)

     

    이후 dir 명령어로 파일이 생성되었는지 확인한다.

     

     

    'JAVA' 카테고리의 다른 글

    [21회차-③~22회차] JAVA(GUI-awt)  (0) 2021.04.21
    [21회차-②] JAVA (네트워크)  (0) 2021.04.21
    [20회차-③] JAVA (Stream)  (0) 2021.04.20
    [20회차-②] JAVA (예외처리)  (0) 2021.04.20
    [20회차-①] JAVA(기타 클래스와 제네릭)  (0) 2021.04.20
Designed by Tistory.