[KOSTA] Spring 기반 Cloud 서비스 개발자 양성 과정 20일차 - File클래스, 재귀함수 실습

JUNBEOM PARK·2022년 2월 25일
0
post-thumbnail

🎲 파일 경로

File 클래스를 이용해 해당 경로의 정보를 추출 해라

📃 풀이


package kosta.io;

import java.io.File;

public class FileExam {
	
	public static void show(File file) {
		if(file.isDirectory()) {
			File[] files = file.listFiles();
			for(int i = 0; i < files.length; i++) {
				System.out.println("파일 이름 : " + files[i].getName());
			}
		}else {
			System.out.println("이름 : " + file.getName());
		}
	}

	public static void main(String[] args) {
		String path = "C:\\KOSTA\\KOSTA_Study\\workspace\\Java_work\\Java236\\src\\kosta";
		File f = new File(path);
		
		show(f);
	}
}

🎲 팩토리얼 (재귀함수)

재귀함수를 이용해 팩토리얼을 구현 해라

📃 풀이

package kosta.io;

import java.util.Scanner;

public class RecurExam {
	
	static int f(int n) {
		if(n > 1) {
			return n*f(n-1);
		}else {
			return 1;
		}
	}

	public static void main(String[] args) {
		//재귀함수(팩토리얼계산)
		//5! = 5*4*3*2*1
		Scanner sc = new Scanner(System.in);
		System.out.print("정수 입력 : ");
		int n = sc.nextInt();
		
		System.out.println(n + "! =" + f(n));
	}

}

🎲 폴더안에 파일이름

재귀함수를 이용해 폴더 안에 파일 이름을 추출해라

📃 풀이

package kosta.io;

import java.io.File;

public class FileExam {
	
	public static void fileList(File file) {
		File list[] = file.listFiles();
		
		for(int i = 0; i < list.length; i++) {
			if(list[i].isDirectory()) {
				System.out.println();
				System.out.println("** "+list[i].getName() + " Dir**");
				
				fileList(list[i]);
			}else {
				System.out.println(" - " + list[i].getName());
			}
		}
	}
	

	public static void main(String[] args) {
		String path = "C:\\KOSTA\\KOSTA_Study\\workspace\\Java_work\\Java236\\src\\kosta";
		File f = new File(path);
		
		
		fileList(f);
	}
}

🎲 이미지 파일 복사

특정 경로에 있는 이미지 파일을 다른 경로에 복사하여라

📃 풀이

FileMission.java


package kosta.io;

import java.io.File;
import java.io.FileReader;

public class FileMission {

	public static void main(String[] args) {
		//1. 바이트스트림을 이용하여 파일을 복사
		String soure = "C:\\KOSTA\\array.PNG";
		String dest = "C:\\KOSTA\\KOSTA_Study\\array.PNG";
		
		File f = new File(soure);
		File f2 = new File(dest);
		
		FileUtil fu = new FileUtil();
		
		fu.copyFile(f, f2);
		
	}
}

FileUtil.java


package kosta.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileUtil {
	
	//바이트값을 가진 1개의 파일을 복사하는 기능
	public static void copyFile(File source, File dest) {
		FileInputStream fis = null;
		FileOutputStream fos = null;
		
		try {
			fis = new FileInputStream(source);
			fos = new FileOutputStream(dest);
			
			byte[] bytes = new byte[1024];
			
			while(true) {
				
				int data = fis.read(bytes);
				if(data == -1) break;
				fos.write(bytes);
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				fos.close();
				fis.close();
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}
	}
}

profile
DB 엔지니어👍

0개의 댓글