[Day 8 | Java] io 패키지 개요

y♡ding·2024년 10월 23일
0

데브코스 TIL

목록 보기
44/163

자바의 java.io 패키지는 입출력(IO)을 처리하는데 필수적인 클래스들을 제공합니다. 이 패키지는 데이터의 입출력 처리와 관련된 다양한 스트림 클래스를 포함하고 있어, 프로그램이 파일, 네트워크, 메모리 등에서 데이터를 읽고 쓰는 작업을 간단하게 처리할 수 있게 도와줍니다.

1. 데이터 종류 및 저장 위치

데이터는 두 가지로 나눌 수 있습니다:

  1. 임시 저장 데이터: 메모리에 저장되는 휘발성 데이터로, 프로그램 종료 시 사라집니다.
  2. 영구 저장 데이터: 하드디스크나 SSD와 같은 영구적인 저장장치에 저장되며, 파일이나 데이터베이스를 사용해 저장합니다.

이 중 파일은 자주 사용되는 저장 방식으로, 자바에서는 이를 처리하기 위해 java.io.File 클래스를 제공합니다.


2. CRUD 작업

입출력의 기본적인 데이터 처리 작업은 CRUD입니다:

  • Create: 데이터를 생성
  • Read: 데이터를 읽기
  • Update: 데이터를 갱신
  • Delete: 데이터를 삭제

이러한 작업들은 자바에서 파일 입출력 시 자주 사용되며, java.io 패키지를 통해 쉽게 처리할 수 있습니다.



절대경로와 상대경로

파일을 읽거나 쓸 때, 파일의 위치를 경로(path)로 지정합니다. 자바에서는 파일 경로를 사용할 때, 절대경로상대경로 두 가지 방식이 있습니다. 이 둘은 파일 시스템 내에서 파일이나 디렉토리의 위치를 나타내는 방식이 다릅니다.

1. 절대경로 (Absolute Path)

절대경로는 파일이나 디렉토리의 위치를 루트 디렉토리(root directory)로부터 완전한 경로를 나타냅니다. 즉, 파일 시스템의 최상위 디렉토리에서부터 시작해, 파일이나 디렉토리까지의 모든 경로를 명확하게 기술한 경로입니다.

특징:

  • 항상 동일한 경로를 가리킵니다.
  • 어느 위치에서 실행하더라도 해당 경로는 변경되지 않습니다.

예시:

  • Windows: C:\Users\Username\Documents\file.txt
  • Mac/Linux: /Users/Username/Documents/file.txt

경로는 루트 디렉토리C: 또는 /부터 시작해 파일까지의 전체 경로를 지정합니다.


2. 상대경로 (Relative Path)

상대경로현재 작업 디렉토리(현재 프로그램이 실행되고 있는 위치)를 기준으로, 파일이나 디렉토리의 경로를 지정하는 방식입니다. 즉, 현재 디렉토리를 기준으로 상대적으로 어디에 파일이 있는지를 나타냅니다.

특징:

  • 현재 작업 디렉토리에 따라 경로가 달라질 수 있습니다.
  • 프로그램이 실행되는 위치에 따라 파일의 경로가 다르게 해석됩니다.
  • 프로젝트 내에서 동적으로 경로를 지정할 때 유용합니다.

예시:

  • 현재 디렉토리가 C:/Users/Username/Documents일 때:
    • 상대경로: file.txtC:/Users/Username/Documents/file.txt
    • 상대경로: ../file.txtC:/Users/Username/file.txt

상대경로에서 ../상위 디렉토리를 의미하며, 현재 디렉토리의 부모 디렉토리로 이동하는 데 사용됩니다.

3. 상대경로와 절대경로의 차이점

구분절대경로상대경로
경로 정의루트 디렉토리부터 파일이나 디렉토리까지의 전체 경로를 나타냄현재 작업 디렉토리를 기준으로 한 상대적인 경로를 나타냄
파일 위치파일 위치가 명확하게 정의됨현재 작업 디렉토리에 따라 파일 위치가 달라질 수 있음
운영체제 차이운영체제에 따라 경로 구조가 달라질 수 있음 (예: Windows는 C:\, Unix 계열은 /)프로그램 실행 위치에 따라 경로가 동적으로 변할 수 있음
경로 고정 여부언제나 고정된 경로를 참조프로젝트나 파일의 구조가 바뀔 때 유용

4. 실전에서의 사용

  • 절대경로는 주로 파일의 위치가 명확하고 고정적일 때 사용합니다. 예를 들어, 시스템 파일이나 설정 파일의 경로를 다룰 때 유용합니다.
  • 상대경로프로젝트 내에서 파일이나 자원을 동적으로 참조해야 할 때 사용됩니다. 특히, 파일의 위치가 자주 변경되거나, 다른 환경에서 동일한 코드를 실행할 때 유용합니다. 이를 통해 코드가 더 이식성 있게 동작할 수 있습니다.

0개의 댓글

관련 채용 정보