본문 바로가기
프로그래밍/JAVA 자바 A-Z

[Java 자바 기초] 파일 입출력 관련 클래스, File 파일 정보 확인, FileReader & BufferedReader 내용 읽기, FileInputStream, FileWriter & PrintWriter 내용 쓰기

by nisne 2020. 9. 10.

모든 설명은 주석으로 확인할 수 있어요.

하나씩 따라해 보세요. ^^

 

package javaEx;

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Vector;

public class Review{

	public static void main(String[] args) {
		/*
		파일 입출력 관련 클래스
		-File - 파일 정보 확인 용도로 주로 사용
		-FileReader & BufferedReader - 파일 내 내용 읽기 용도로 주로 사용
		-FileInputStream - 1바이트씩 읽어옴 > 한글은 깨짐
		-FileReader	- 2바이트씩 읽어옴 > 한글에 적합
		-FileWriter & PrintWriter - 파일 생성&출력에 주로 사용
		 */
		
		//1. File 클래스 
		String pathname = "D:/FileIO.txt";		//경로명에 그냥 슬래시 사용도 가능
												//역슬래시 사용 시 이클립스에서 \를 \\로 자동 변환해줌
		File file = new File(pathname);
		
		//주요 함수
		file.exists();		//해당 경로명에 파일이 있는지 확인
		file.length();		//파일 용량을 byte 단위로 리턴
		file.getName();		//파일명.확장자를 리턴
		file.delete();		//파일 삭제
		
		//2. FileReader & BufferedReader
		String fileName = "D:/FileIO.txt";			
		
		try {
			
			FileReader fr = new FileReader(fileName);	//읽을 파일을 FileReader 객체로 받아오기
														//try문 밖에서 선언할 경우 예외 처리에 대한 에러 발생
			BufferedReader br = new BufferedReader(fr);	//파일 내용을 읽기 위한 커서 생성
			
			while(true) {
				String line = br.readLine();	//\n 엔터를 기준으로 한줄씩 읽어오기
				
				if(line == null) {	//읽어올 것이 없으면
					break;			//반복문 탈출
				}//if end
				
				System.out.println(line); 	//읽어온 내용 출력
				
			}//while end
			
			br.close();
			fr.close(); 	//외부 파일은 작업이 끝나면 늦게 불러온 순서 대로 닫아줘야 함
			
		} catch (Exception e) {
			System.out.println("예외 발생: " + e);
		}
		
		//3. FileReader
		String filename = "D:/FileIO.txt";
		
		try {
			FileReader fr = new FileReader(filename);	//try문 밖에서 선언 시 에러
			
			while(true) {
				int data = fr.read();
				
				if(data == -1) {break;}
				
				System.out.printf("%c", data); 	//.read()는 문자형에 대한 정수형을 리턴
												//따라서 출력서식을 통해 문자로 변환해 출력한다
				
			}//while end
			
			fr.close();
			
		} catch (Exception e) {
			System.out.println("예외 발생: " + e);
		}
		
		//4. FileWriter & PrintWriter
		String fname = "D:/FileIO.txt";
		
		try {
			//생성할 파일의 경로와 파일명을 매개변수로 넣어주고
			FileWriter fw = new FileWriter(fname, false); 	//역시 try문 밖에서 선언 시 에러 발생
															//false - overwrite
															//true - append
			//위에서 만든 객체에 내용을 입력할 수 있는 또 다른 객체 생성
			PrintWriter pw = new PrintWriter(fw, true);		//true - 버퍼클리어, true 권장
			
			//내용 입력
			pw.println("양덕87");
			pw.println("LANEEBLOG");
			pw.println("사심있는번역가");
			pw.println("에드센스");
			pw.println("가즈아");
			
			pw.close();
			fw.close();
			
		} catch (Exception e) {
			System.out.println("예외: " + e);
		}
		
		
		

	}//main() end

}//class end

영어를 어느 정도 잘하면 프로그래밍에도 많은 도움이 되더군요.

영어를 배울 수밖에 없다면... ^_^

 

 

댓글