728x90
파일 구분자 개요
흔히 url 입력하듯이 `/`을 입력하는 것이 파일을 구분하는것의 당연함이라고 생각했지만 검색해보니, OS마다 다른 파일 구분자를 가지고 있었다. 그것을 흔히 사용하는 두개의 OS로 구분하고자 한다.
윈도우 : \
리눅스 : /
만약 다음과 같은 파일 구조를 가지고 있다고 할때
fileGrandParent
->fileParent
->->fileChildren
각각의 OS는 파일 구분자가 다름으로 인해서, 표시하는 방식이 다르게 된다.
윈도우 : fileGrandParent\fileParent\fileChildren
리눅스 : fileGrandParent/fileParent/fileChildren
그렇지만 요즘의 프로그램들은 `\`(백슬래시), `/`(슬래시) 든 알아서 인식한다고 한다.
Java 파일 구분자(Fileseparator)
Java의 File.separator는 JVM이 실행되는 OS에 따라 맞추어서 제공한다고 한다.
필자는 Java에서 File에 대한 접근을 할때 보통은 path를 적어두고, File에 접근을 하는 경향이 있었다.
String filePath = "abc"+'/'+"def"...
File file = new File(filePath)
이런식으로 작성하였지만, 아주 틀린 방법은 아니지만 만약 '/'을 파일 구분자로 가지고 있지 않는 OS에서 JVM이 돌리려고 보면 잘 동작하지 않을것이라고 생각한다. 따라서 아래와 같이 작성하여야 한다.
String filePath = "abc"+File.separator+"def"...
또, Java7부터 변경된 방법으로 인해 편리하게 사용할수 있는 File 방법이 있다.
File file = new File(filePath, "파일명.확장명")
위와 같이 File의 `첫번째 인자`는 경로 `두번째 인자`는 파일명을 작성하여 사용하는 법이다.
참고 사이트
728x90
'Dev Language > Java' 카테고리의 다른 글
ByteArrayOutputStream 는 어떻게 사용되는 것일까? (0) | 2021.05.05 |
---|