[JAVA] IO _ File클래스

김나영·2022년 8월 11일
0

JAVA

목록 보기
7/14

File Class

  • 패키지 : java.io
  • 파일 및 디렉터리 관리
  • 생성방법
    • new File(경로, 파일)
    • new File(파일)
  • 윈도우의 경로 구분 방법 : 백슬래시 ()
  • 리눅스의 경로 구분 방법 : 슬래시 (/)
// 폴더 (디렉터리) 만들기
File dir = new File ("C:\\storage");

// 존재하지 않으면 만들겠다.
if(dir.exists() == false) {   // if (!dir.exist())
	dir.mkdirs();       // 폴더가 하나일땐 dir, 여러개일땐 dirs
}    

// 존재하면 삭제하겠다.
else {
	dir.delete();     // 지금 지운다.
    dir.deleteOnExit();   // JVM이 종료되면 지운다.
}

File file = new File("C:\\storage", "my.txt");
		
	try {
		if (file.exists()  == false) {
			file.createNewFile();    
		}
		else {
			file.delete();
		}
	
	} catch(IOException e) {
		// 개발할 때 넣는 catch블록 코드
		e.printStackTrace();
	}
File file = new File("C:\\storage", "my.txt");
		
	try {
		if (file.exists()  == false) {
			file.createNewFile();    
		}
		else {
			file.delete();
		}

	} catch(IOException e) {
		// 개발할 때 넣는 catch블록 코드
		e.printStackTrace();
	}
File dir = new File ("C:\\GDJ");
	File[] list = dir.listFiles();      // 디렉터리 내부의 모든 파일/디렉터리를  File 객체로 가져옴
		
	 for(int i = 0; i < list.length; i++) {
			 System.out.println(list[i].getName());
	 }
// 플랫폼마다 다른 경로 구분자 지원
File file =  new File("C:" + File.separator + "storage" + File.separator + "my.txt");
System.out.println(file.getName()); 


Stream

  • 입력과 출력이 이루어지는 가상의 연결 통로
  • 키보드, 모니터, 파일, 네트워크 등은 자바 프로그램과 스트림을 통해서 데이터를 주고 받음
  • 입력이나 출력 중 하나만 처리할 수 있어 입력 스트림과 출력 스트림으로 구분함 (입력과 출력을 동시에 할 수 없음)

스트림 구분

  • 바이트 스트림
    • 입출력 데이터를 바이트(byte) 단위로 처리
    • 모든 파일 형식 처리 가능
      이미지 파일
    • InputStream / OutputStream으로 끝나는 클래스
  • 문자 스트림
    • 입출력 데이터를 문자 단위로 처리
    • 문자로 된 파일 형식만 처리 가능
      텍스트 파일 입출력
    • Reader / Writer로 끝나는 클래스
  • 오직 영문으로 구성된 텍스트 파일은 바이트 스트림으로 처리할 수 있는가?
    • yes. 영문 1글자는 1바이트 크기를 가지므로 바이트 스트림을 사용해도 영문 1글자씩 처리 가능
    • 그러나 한글은 1글자가 2~3바이트 크기를 가지므로 반드시 문자 스트림을 사용해야 함






*** ctrl + shift + o -> import 리스트 정리. 없는것은 추가 잘못들어간 것은 삭제

profile
응애 나 애기 개발자

0개의 댓글