파일 입출력

위수현·2023년 2월 6일
0

파일 입출력

java.io.File

🔎 File 클래스는 파일 또는 폴더에 대한 정보를 제공하는 클래스이다.

🔎 File 클래스의 객체는 정보를 조회 하고자 하는 파일이나 폴더의 경로에 대한 문자열을 생성자 파라미터로 전달하는 형태로 만들 수 있다.

🔎 이 때, 파라미터로 전달되는 경로가 실제로 존재하지 않더라도 File객체의 생성이 가능하다.

🔎 C:\photo\food.jpg 파일에 대한 객체 생성

	File file = new File("C:/photo/food.jpg");
	File file = new File("C:/photo", "food.jpg");

운영체제간의 호환성 유지를 위한 "\"의 사용

🔎 경로 문자열을 설정할 때 윈도우 기반에서는 역슬래시()를 사용하지만 이 경우 이스케이프 문자를 사용하여 '\'의 형식으로 사용해야 한다.

🔎 가급적 다른 운영체제와의 호환성을 위해 슬래시(/)를 사용하는 것이 좋다.

절대경로

🔎 작업 디렉토리와 관계없이 절대적인 위치를 의미하는 경로
🔎 윈도우 예시

 C:/Windows/System32/drivers/etc/hosts

🔎 리눅스 예시

/etc/httpd/conf/httpd.conf

상대경로

🔎 작업 디렉토리를 기준으로 상대적인 위치를 의미하는 경로
🔎 윈도우 예시 : ./conf/httpd.conf 현재 내 위치 : ./
🔎 리눅스 예시 : ../drivers/etc/hosts 현재 내 위치 : ../

문자 인코딩(character encoding)

🔎 문자나 기호들의 집합을 컴퓨터에서 저장하거나 통신에 사용할 목적으로 부호화하는 방법

🔎 UTF-8 : 8비트 이진수로 표편하는 방법
🔎 예를 들어 EUCKR로 인코딩을하면 영문은
문제가 없지만 한글은 다 깨져서 출력된다.

-> 변수의 유효 범위가 다르기에 buffer인식이 불가한 경우

스트림이란?

🔎 입출력에서 stream이란 디바이스의 입출력 방식이 character 단위이든 block 단위이든 관계없이 "1바이트"씩 "연속"적으로 전달되는 형태로, 추상화된 상태를 의미한다.

🔎 입출력 장치는 개별적인 특성이 있으므로 읽고, 쓰는 단위가 각각 다르지만, 스트림은 이러한 일련의 과정을 추상화하여 모든 디바이스를 character 단위로만 사용하도록 한다.

🔎 즉, 입출력 디바이스의 특성을 무시하고 하나의 단일한 입출력 인터페이스로 다룰 수 있도록하는 것이 stream이다.

-> UTF방식으로 변환해서 문자열을 인코딩해서 전달하는 방식

자바의 스트림 관련 클래스

🔎 스트림 관련 클래스들은 각각 InputStream(입력/읽기), OutputStream(출력/저장)과 관련된 인터페이스를 상속받기 때문에 모두 동일한 메서드를 가지고 있다.

<예시>


**결과 값
[INFO] 파일 저장 성공 >> test.txt
[INFO] 파일 읽기 성공 >> test.txt
가나다라마바사abcdefg

  • 프로젝트 경로에 test.txt 생성 후
    "가나다라마바사abcdefg" 문자열 출력 확인 필수


-> OutputStream을 활용하여 test.txt에 문자열 저장하기


[문제2]
**결과 값
[INFO] 파일 저장 성공 >> myfile.txt
[INFO] 파일 읽기 성공 >> myfile.txt
안녕하세요. 자바 프로그래밍

  • 프로젝트 경로에 myfile.txt 생성 후
    "안녕하세요. 자바 프로그래밍" 문자열 출력 확인 필수

-> OutputStream을 활용하여 myfile.txt에 문자열 저장하기

-> InputStream을 활용하여 myfile.txt에 문자열 읽기

-> myfile.txt에 담긴 문자열 확인하기


profile
수현

0개의 댓글