개발/Java

Java - IO, java.io.File, 경로 확인과 폴더 생성

뉴에이스 2018. 10. 1. 16:57
IO : 입력과 출력
사용패키지 : java.io
웹의 사용 : 자료실, FTP..
	
IO 클래스 형태..
----------------------
프로그램 메모리로 들어오는 작업 : 입력
프로그램에서 내보내는 작업 : 출력
	
추상개념의 상위 클래스 (Interface) : 객체 생성이 되지 않기 때문에 구현된 자식 클래스를 통해 사용
	
내부 처리 단위에 따른 입출력 클래스 구분
byte : 텍스트 편집기를 통한 해석이 불가능한것, 해석하기 위해서 툴이 필요한것 (이미지, mp3, 오피스워드, pdf, ...) 
char : 우리가 눈으로 보고 해석이 가능..

InputStream		- 입력 - 바이트
OutputStream	- 출력 - 바이트
	
Reader			- 입력 - 문자
Writer			- 출력 - 문자
	
// File 입/출력
FileReader -> 문자 입력
FileInputStream -> 바이트 입력
FileWriter -> 문자 출력
FileOutputStream -> 바이트 출력
	
// 공간 입/출력 (속도개선)
BufferedReader -> 문자 입력
BufferedInputStream -> 바이트 입력
BufferdWriter -> 문자 출력
BufferedOutputStream -> 바이트 출력
	
// 메모리에 올라가있는 객체(인스턴스)를 저장하거나, 읽어올때
ObjectInputStream -> 바이트 입력
ObjectOutputStream -> 바이트 출력
	
// 다양한 기능의 출력 전용 클래스
PrintWriter -> 문자 출력
PrintStream -> 바이트 출력
	
// 
InputStreamReader -> 문자 입력
OutputStreamWriter -> 문자 출력
----------------------
	
프로그램에서 Person p = new Person(); 객체를 생성했습니다.
이렇게 생성된 p 객체의 내용을 result.dat 파일에 저장하고 싶습니다.
위에 설명에 필요한 클래스는??
	
ObjectOutputStream, FileOutputStream
	
	
A씨는 컴퓨터에 있는 이력서.doc 파일의 내용을 읽어서 이력서1.doc 파일로 복사하는 프로그램을 만들고 싶습니다.
위에 설명에 필요한 클래스는??
	
FileInputStream, FileOutputStream
	
	
Test10.java 파일의 내용을 화면에 출력하는 프로그램을 작성하려고 합니다.
위에 설명에 필요한 클래스는??
	
FileReader, FileInputStream 둘다 가능(한글은 깨짐), PrintStream

	
사용자의 입력을 받아서 화면에 출력하는 프로그램 작성
위에 설명에 필요한 클래스는??
InputStream, PrintStream
	
	
File 관련된 프로그램 작성...
	
File 클래스..

 

소스

 

public static void main(String[] args) {
	// 특정한 위치의 디렉토리 또는 확장자를 가진 파일을 접근 (디렉토리도 File 개념)
	File f = new File("data/lec13/quiz/aaa");
	boolean bool = f.exists();
	System.out.println(bool);
	
	if(bool == true) {
		System.out.println("존재하는 경로입니다.");
	}else {
		// 경로를 생성 (마지막 경로에 있는 디렉토리 하나)
		//if(f.mkdir()) {
		// 존재하지 않는 디렉토리를 한번에 여러개 생성해야 할때는 mkdirs
		if(f.mkdirs()) {
			System.out.println("경로가 생성되었습니다.");
		}else {
			System.out.println("경로 생성이 실패하였습니다.");
		}
	}
}

 

결과

 

false
경로가 생성되었습니다.