Windows/Linux 에서 파일 읽 기와 쓰기

자바 자체 가 크로스 플랫폼 이라는 것 은 의심 할 여지 가 없다.하지만 오랫동안 windows 에서 개발 해 나 쁜 프로 그래 밍 습관 을 기 르 는 경우 가 많다.운영 체제 가 다 르 기 때문에 아주 작은 곳 에서 bug 가 발생 하여 그 피 해 를 많이 입 을 수 있 습 니 다.
     가장 징 그 러 운 문 제 는 windows 플랫폼 에서 파일 은 모두"\"로 분할 되 어 있다 는 것 이다.예 를 들 어"D:\test\...",리 눅 스에 서 파일 은 모두"/"로 분할 되 어 있다.예 를 들 어"home/admin/..."이다.개발 할 때 파일 분할 문자 가 죽 으 면 운영 체제 만 호 환 될 수 밖 에 없다.여러 운영 체 제 를 동시에 호 환 하려 면 죽음 을 써 서 는 안 된다.쓰 기 는 File.separator 구분자 로 연결 하고 StringBuffer 로 연결 해 야 합 니 다.예 를 들 면:
 
StringBuffer sb = new StringBuffer();
sb.append("home").append(File.separator).append("admin");
File file = new File(sb.toString());

     또 하나의 새로운 문제 가 있 습 니 다.만약 에 프로그램 이 특정한 파일 경 로 를 데이터베이스 에 오래 지속 시 킬 수 있다 면 데이터 베이스 에 저 장 된 char 는 반드시 특정한 운영 체제 의 파일 경로 형식 입 니 다.
데이터베이스 에 서 는 반드시 죽은 것 이 고 서로 다른 운영 체제 에서 읽 어 내 서 파일 작업 을 하면 반드시 다시 이상 할 것 이다.이렇게 하면 전환 방법 으로 이 문 제 를 해결 할 수 밖 에 없다.
 
public static String parseFilePath(String fileName,String filePath){
      StringBuffer filePath_unit = new StringBuffer();
      String path = filePath_unit.append(filePath).append(File.separator).
            append(fileName).toString();
      return path.replace("/", File.separator).replace("\\",
            File.separator);
}

    그 피 해 를 많이 입 었 군요.

좋은 웹페이지 즐겨찾기