개발공부

JAVA쪼렙탈출기: File

Yuniverse. 2023. 6. 18. 11:23
Python과 SQL만 써본 주니어 분석가. '개발공부를 해보고 싶다', '개발도 공부하긴 해야하는데...'는 말만 한지 어연 1년이 넘어가는 중, 이대로는 안되겠다 싶어 냅다 JAVA 수업 수강에 카드를 긁었다. 쪼렙 중의 쪼렙이 JAVA를 배워나가는 여정을 "JAVA 쪼렙 탈출기"라는 시리즈로 남길 예정이다.

 

특정 디렉토리 내에 폴더, 파일 생성

import java.io.File;
import java.io.IOException;

public class Ex01File {
	
	public static void main(String[] args) throws IOException { // createNewFile() 메서드는 throws(예외 전가)를 써주어야만 한다.
		
		// 폴더 경로를 가지는 객체 생성
		File dir = new File("D:\\yjseo\\NewWork\\fileTest");
		
		// 폴더가 있는지 확인후 없으면 폴더 생성
		if(dir.exists() == false) {
			dir.mkdir(); // 폴더 생성
			System.out.println("폴더 생성");
		}
		
		// 폴더, 파일명을 가지는 객체 생성
		File data = new File(dir, "test.txt");
		
		// 경로에 파일이 없으면 파일 생성
		if(data.createNewFile()) {
			System.out.println(data.getName() + " - 파일 생성");
		} else {
			System.out.println(data.getName() + " - 중복 파일");
		}
		
	}

}

 

텍스트(.txt) 파일 생성 및 파일 내 텍스트 입력

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Ex02TextOut {
	
	public static void main(String[] args) throws IOException {
		
		File dir = new File("D:\\yjseo\\NewWork\\fileTest");
		File data = new File(dir, "test.txt");
		if(data.createNewFile()) {
			System.out.println(data.getName() + " - 파일 생성");
		}
		
		// 통로 생성
		FileWriter fw = new FileWriter(data);
		BufferedWriter bw = new BufferedWriter(fw); // 보조 stream(중간통로) 생성
		PrintWriter pw = null;
		
		try {
			
			pw = new PrintWriter(bw);
			pw.println("한달동안 수고하셨습니다."); // test.txt 파일에 작성된다.
			pw.println("항상 건강하고 행복하세요.");
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally { // stream 사용할 때는 문제가 생기던 생기지않던 finally를 이용하여 통로는 폐쇄시킨다.
			if(pw != null) pw.close();
			if(bw != null) bw.close();
			if(fw != null) fw.close();
		}
		
	}

}

 

텍스트 파일 내의 데이터 읽기

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Ex03TextIn {
	
	public static void main(String[] args) throws IOException {
		
		File dir = new File("D:\\yjseo\\NewWork\\fileTest");
		File data = new File(dir, "test.txt");
		if(data.createNewFile()) {
			System.out.println(data.getName() + " - 파일 생성");
		}
		
		// 통로 생성
		FileReader fr = new FileReader(data);
		BufferedReader br = new BufferedReader(fr);
		
		try {
			
			while(true) {
				String value = br.readLine(); // test.txt에 있는 데이터를 한 줄씩 읽는다.
				if(value == null) { 
					break; // 읽을 데이터가 없으면 멈춘다.
				}
				System.out.println(value);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if(br != null) br.close();
			if(fr != null) fr.close();
		}
		
	}

}