본문 바로가기

JAVA/DAY 20 _ 23.09.13

File I/O Basic

// 파일 입출력(File I/O) : low레벨의 API는 사실상 쓸일이 많지 않다

# 특징
// 컴퓨터에서 파일을 읽어 들이거나 파일에 데이터를 쓰는 작업
// 파일 입출력은 데이터의 저장, 읽기, 수정, 삭제 등과 관련된 다양한 작업에서 사용
// File 클래스가 따로 있당. 

 

// File file = new File("C:\\tempFolder\\ttt\\a\\b\\c");

// 헤헤 특수문자 쓰고싶으면 \이거 썼어야했지 ^_^V

 

 

# 구조1

FileOutputStream fos = null;
try {
    fos = new FileOutputStream(file);
}catch(Exception e) {
    e.printStackTrace();	
}finally {

    try {
    fos.close();
    }catch(Exception e) {
        e.printStackTrace();
    }	
}

 

## FileOutputStream:
// 파일을 생성하거나 파일이 이미 존재하는 경우 '해당 파일을 열어서 데이터를 쓸 때' 사용하는 클래스
// 파일을 쓸 때는 예외 처리를 고려하여 try-catch 블록 내에서 파일 작업을 수행하는 것이 좋다.
// 파일을 열고 작업을 수행한 후에는 close() 메서드를 호출하여 스트림을 닫아야 함!

## FileOutputStream fos = new FileOutputStream(file);
// 위에같은 경우에 --> 문법적으로 강제로 trycatch를 쓰도록 하고있음(checked예외)
// exception을 피하기위해서 --> 에라모르겠다 catch(Exception e)를 해줘야되고,
// 어떤 error가 있을지 모르니까 --> e.printStackTrace();로 확인해야겠지?

 


구조2) 공부를 위해서 API를 보고 싶을 때

// new FileOutputStream() -> ()안에 file넣어버리기~

FileOutputStream fos = new FileOutputStream(file);
fos.close();
public static void main(String[] args) throws Exception {	// 구조2) 에라모르겠다 던지기

 


 

## 구조3) try()를 써서 괄호안에 넣어버려

// 이때는 close를 하지 않아 --> {}끝나는 순간 알아서 close되기때문!

File file = new File("C:\\tempFolder\\qqq.qqq");

    try(FileOutputStream fos = new FileOutputStream(file)){

        // fos.write(10); --> qqq.qqq폴더에 10을 쓰겠다는거지뭐....

//		## 라떼는말이야 방법 --> 1. 요즘은 다 알아서 래핑해준다구~
//		fos.write(a >> 24);
//		fos.write(a >> 16);
//		fos.write(a >> 8);
//		fos.write(a);


        // 1-1) 알아서 래핑해주는 녀석
        // DataOutputStream을 사용하여 데이터를 파일에 써보자★
        // writeUTF 메서드를 사용하여 문자열 데이터(= 지금은 a)를 파일에 작성할거야

        DataOutputStream dos = new DataOutputStream(fos);

        dos.writeUTF("a");


    }catch(Exception e) {

    }
    System.out.println("프로그램종료");

// ======= 기타 등등 file관련 API ============

file.exists();
// --> 특정 파일이 존재하면 true..

file.isDirectory();
// --> 특정 폴더가 맞으면 true....

file.mkdirs();
// --> 실행시키고 파일 들어가보면 ttt라는 폴더(= 디렉토리)안에 a, 그안에 b.... 생성돼있다 ㅋㅋㅋ 오 신기행

file.listFiles();
// --> 파일 리스트를 보여주고, 뭐 get하면 볼수도 있겠지

 

 

 

 

 

 

 

// ======= 기타 등등 ============
file.exists();
// --> 특정 파일이 존재하면 true..

file.isDirectory();
// --> 특정 폴더가 맞으면 true....

file.mkdirs();
// --> 실행시키고 파일 들어가보면 ttt라는 폴더(= 디렉토리)안에 a, 그안에 b.... 생성돼있다 ㅋㅋㅋ 오 신기행

file.listFiles();
// --> 파일 리스트를 보여주고, 뭐 get하면 볼수도 있겠지

'JAVA > DAY 20 _ 23.09.13' 카테고리의 다른 글

File I/O _ load  (0) 2023.09.13
Stream활용 예시  (0) 2023.09.13
IntStream  (0) 2023.09.13
Stream_API  (0) 2023.09.13
Lambda5_consumer(interface)  (0) 2023.09.13