sggnology
하늘속에서IT
sggnology
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • Algorithm (31)
      • Programmers (27)
      • Baekjoon (4)
    • WIKI (4)
      • VirtualBox (1)
      • Power Toys (1)
    • NodeJS (4)
      • nvm (1)
      • React (1)
      • Vue (1)
    • Dev Language (3)
      • Java (2)
      • Kotlin (1)
    • Spring Boot (17)
      • Gradle (1)
      • JPA (3)
    • DB (4)
      • MariaDB (3)
      • Redis (0)
    • Android (6)
      • Debug (3)
    • Nginx (3)
      • Debug (1)
    • Intellij (0)
    • Network (1)
    • Git (2)
      • GitHub (2)
    • Chrome Extension (0)
    • ETC (5)
      • Monitoring (2)
    • Linux (1)
      • WSL (1)
    • Visual Studio (1)
    • Side Project (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • nginx
  • 레벨3
  • spring boot
  • kotlin
  • JPA
  • docker
  • 고득점KIT
  • DB
  • 오블완
  • 고득점 Kit
  • 안드로이드 스튜디오
  • mariadb
  • Android Studio
  • 레벨2
  • 프로그래머스
  • 알고리즘
  • 티스토리챌린지
  • 백준
  • 연습문제
  • java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sggnology

하늘속에서IT

OS 마다 서로 다른 파일 구분자(Java, File, FileSeparator)
Dev Language/Java

OS 마다 서로 다른 파일 구분자(Java, File, FileSeparator)

2021. 5. 4. 14:36
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의 `첫번째 인자`는 경로 `두번째 인자`는  파일명을 작성하여 사용하는 법이다.

 

 

참고 사이트

mommoo.tistory.com/87

728x90

'Dev Language > Java' 카테고리의 다른 글

ByteArrayOutputStream 는 어떻게 사용되는 것일까?  (0) 2021.05.05
    'Dev Language/Java' 카테고리의 다른 글
    • ByteArrayOutputStream 는 어떻게 사용되는 것일까?
    sggnology
    sggnology
    하늘은 파란색이니까 내 삶도 파란색이길 ㅎㅎ

    티스토리툴바