김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • web.xml수정
  • 객체지향프로그래밍
  • ErrorPage
  • HTML공부
  • 개발자
  • 자바
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • 코딩공부 #자바공부
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 풀스택
  • 프론트앤드
  • 코딩
  • http에러메세지
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • httperror
  • 자바공부
  • 백앤드
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • 코딩공부

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ Java/: 기본 익히기

[JAVA] #9-6 File 클래스

2022. 9. 19. 18:11

1. 파일 클래스

 

 자바에서는 File 클래스를 통해서 파일과 디렉터리를 다룰 수 있도록 하고 있다.

 그래서 File 인스턴스는 파일 일 수도 있고 디렉터리 일 수도 있다.

 이 파일 클래스는 java.io 안에 들어있으며(in, out) 파일명, 파일 크기, 확장명, 파일 타입 등등에 접근할 수 있다.

 

 이제 직접 파일 클래스를 사용해보자!!

 * 파일 클래스를 사용하려면 java.io.* 를 임포트(import)시킬 필요가 있으며 파일이 없더라도 프로그램이 정상적으로 종료가 되어야하기 때문에 예외처리가 꼭 필요하다(throws, try .. catch 등)

 

 

2. 파일 클래스 사용해보기

 

1) 파일 클래스에 파일 담기

 파일 클래스를 만들어서 파일을 담아보자.

 파일을 담을 때는 '경로명 + 파일명.확장자명' 을 정확하게 작성해야하며 경로를 구분할 때는 / 기호와 \\ 기호 중 하나를 사용한다.

 

package oop0919;

import java.io.*;

public class Test05_File {
	public static void main(String[] args) throws Exception {
		// File 클래스
		// -> 파일과 관련된 정보를 알 수 있다
		// -> 파일명, 파일 크기, 확장명, 파일타입 등등
		
		try {
			// 예외 발생이 예상되는 코드 작성			
			// 경로명 + 파일명			
			// 경로명으로 \ 기호를 사용하려면 2번씩 사용해야한다.			
			// String pathname = "C:\\java202207\\공지사항.txt";
			
			// 경로명으로 / 기호도 사용 가능하다
			String pathname = "C:/java202207/공지사항.txt";
			
			File file = new File(pathname); // File 클래스에 파일 담기
			if(file.exists()) {
				System.out.println("파일 있어요!!");
			} else {
				System.out.println("파일 없어요!!");				
			} // if end
			
		} catch (Exception e) {
			// 예외가 발생되면 처리할 코드할 작성
			System.out.println(e);
		} // end
		System.out.println("END");
		
	} // main() end
} // class end

 

2) 파일 클래스로 파일 크기 확인하기

long(자료형) filesize(파일 크기의 매개변수명) = file(불러온 파일의 매개변수명).length();

 

 파일 크기는 .length() 로 확인을 한다.

 이 때 출력결과는 기본적으로 byte값을 갖기에 1024(2의 10승) 씩으로 계속 나누어줄 수록 단위가 상승한다.

System.out.println("파일크기 : " + filesize);
System.out.println("파일크기 : " + filesize/1024 + "KB");
System.out.println("파일크기 : " + filesize/1024/1024 + "MB");

 

3) 파일 클래스로 파일 이름 확인하기

long(자료형) filesize(파일 크기의 매개변수명) = file(불러온 파일의 매개변수명).getName();

 

 

4) 파일 클래스로 파일 삭제하기

 파일을 삭제할 수도 있다.

 이 때 파일은 영구히 삭제되므로 주의해서 작업해야한다(휴지통에도 남지 않는다).

file(불러온 파일의 매개변수명).delete();

삭제를 시킨 후 한번 더 f11을 누르면
파일이 삭제되었다.

 

 

5) 파일 클래스로 파일명과 확장명을 분리해서 출력시키기

 String 클래스를 활용하여 파일명과 확장명을 분리해 출력시킬 수 있다.

 방법은 여러 가지일 수 있겠지만 아래와 같은 코드로 작성해보았다.

int lastdot = filename.lastIndexOf(".");
String name	= filename.substring(0, lastdot);
String ext	= filename.substring(lastdot+1);
System.out.println("파일명 : " + name);
System.out.println("확장명 : " + ext);

삭제된 파일을 다시 생성했다.

 

 

 6) 전체 코드

package oop0919;

import java.io.*;

public class Test05_File {

	public static void main(String[] args) throws Exception {
		// File 클래스
		// -> 파일과 관련된 정보를 알 수 있다
		// -> 파일명, 파일 크기, 확장명, 파일타입 등등
		
		try {
			// 예외 발생이 예상되는 코드 작성
			
			// 경로명 + 파일명
			
			// 경로명으로 \ 기호를 사용하려면 2번씩 사용해야한다.			
			// String pathname = "C:\\java202207\\공지사항.txt";
			
			// 경로명으로 / 기호도 사용 가능하다
			String pathname = "C:/java202207/공지사항.txt";
			
			File file = new File(pathname); // File 클래스에 파일 담기
			if(file.exists()) {
				System.out.println("파일 있어요!!");
				
				long filesize = file.length();
				System.out.println("파일크기 : " + filesize);
				System.out.println("파일크기 : " + filesize/1024 + "KB");
				System.out.println("파일크기 : " + filesize/1024/1024 + "MB");
				
				String filename = file.getName();
				System.out.println("파일이름 : " + filename);
				
				// 파일 삭제
				// -> 실제 파일이 삭제되니 복사본 남겨놓으시기 바랍니다
				/*
				if(file.delete()) {
					System.out.println(filename + "파일이 삭제되었습니다.");
				} else {
					System.out.println(filename + "파일 삭제 실패");
				} // if end
				 */
				
				// 문) 파일명과 확장명을 분리해서 출력하시오
				//	   파일명 : 공지사항
				//     확장명 : txt
				int lastdot = filename.lastIndexOf(".");
				String name	= filename.substring(0, lastdot);
				String ext	= filename.substring(lastdot+1);
				System.out.println("파일명 : " + name);
				System.out.println("확장명 : " + ext);
								
			} else {
				System.out.println("파일 없어요!!");				
			} // if end
			
		} catch (Exception e) {
			// 예외가 발생되면 처리할 코드할 작성
			System.out.println(e);
		} // end
		System.out.println("END");
		

	} // main() end
} // class end
저작자표시 비영리 동일조건

'⁂ Java > : 기본 익히기' 카테고리의 다른 글

[JAVA] #10-2 입출력스트림 : 입력(Input) - BufferedReader  (0) 2022.09.20
[JAVA] #10-1 입출력스트림 : 입력(Input) - byte형과 char형  (0) 2022.09.20
[JAVA] #9-5 스레드(Thread)  (0) 2022.09.19
[JAVA] #9-4 제네릭(Generic) 이해하기 2 - 제네릭  (0) 2022.09.16
[JAVA] #9-3 제네릭(Generic) 이해하기 1 - 컬렉션 프레임워크  (0) 2022.09.16
    '⁂ Java/: 기본 익히기' 카테고리의 다른 글
    • [JAVA] #10-2 입출력스트림 : 입력(Input) - BufferedReader
    • [JAVA] #10-1 입출력스트림 : 입력(Input) - byte형과 char형
    • [JAVA] #9-5 스레드(Thread)
    • [JAVA] #9-4 제네릭(Generic) 이해하기 2 - 제네릭
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바