자바의 java.io
패키지는 입출력(IO)을 처리하는데 필수적인 클래스들을 제공합니다. 이 패키지는 데이터의 입출력 처리와 관련된 다양한 스트림 클래스를 포함하고 있어, 프로그램이 파일, 네트워크, 메모리 등에서 데이터를 읽고 쓰는 작업을 간단하게 처리할 수 있게 도와줍니다.
데이터는 두 가지로 나눌 수 있습니다:
이 중 파일은 자주 사용되는 저장 방식으로, 자바에서는 이를 처리하기 위해 java.io.File
클래스를 제공합니다.
입출력의 기본적인 데이터 처리 작업은 CRUD입니다:
이러한 작업들은 자바에서 파일 입출력 시 자주 사용되며, java.io
패키지를 통해 쉽게 처리할 수 있습니다.
파일을 읽거나 쓸 때, 파일의 위치를 경로(path)로 지정합니다. 자바에서는 파일 경로를 사용할 때, 절대경로와 상대경로 두 가지 방식이 있습니다. 이 둘은 파일 시스템 내에서 파일이나 디렉토리의 위치를 나타내는 방식이 다릅니다.
절대경로는 파일이나 디렉토리의 위치를 루트 디렉토리(root directory)로부터 완전한 경로를 나타냅니다. 즉, 파일 시스템의 최상위 디렉토리에서부터 시작해, 파일이나 디렉토리까지의 모든 경로를 명확하게 기술한 경로입니다.
C:\Users\Username\Documents\file.txt
/Users/Username/Documents/file.txt
경로는 루트 디렉토리인 C:
또는 /
부터 시작해 파일까지의 전체 경로를 지정합니다.
상대경로는 현재 작업 디렉토리(현재 프로그램이 실행되고 있는 위치)를 기준으로, 파일이나 디렉토리의 경로를 지정하는 방식입니다. 즉, 현재 디렉토리를 기준으로 상대적으로 어디에 파일이 있는지를 나타냅니다.
C:/Users/Username/Documents
일 때:file.txt
→ C:/Users/Username/Documents/file.txt
../file.txt
→ C:/Users/Username/file.txt
상대경로에서 ../
는 상위 디렉토리를 의미하며, 현재 디렉토리의 부모 디렉토리로 이동하는 데 사용됩니다.
구분 | 절대경로 | 상대경로 |
---|---|---|
경로 정의 | 루트 디렉토리부터 파일이나 디렉토리까지의 전체 경로를 나타냄 | 현재 작업 디렉토리를 기준으로 한 상대적인 경로를 나타냄 |
파일 위치 | 파일 위치가 명확하게 정의됨 | 현재 작업 디렉토리에 따라 파일 위치가 달라질 수 있음 |
운영체제 차이 | 운영체제에 따라 경로 구조가 달라질 수 있음 (예: Windows는 C:\ , Unix 계열은 / ) | 프로그램 실행 위치에 따라 경로가 동적으로 변할 수 있음 |
경로 고정 여부 | 언제나 고정된 경로를 참조 | 프로젝트나 파일의 구조가 바뀔 때 유용 |