2013-04-12 2 views
1

java와 eclipse를 IDE로 사용하여 (타일) 레벨 편집기를 만들고 있습니다. 타일 ​​맵을로드하기 위해 getResourceAsStream을 사용하고 있습니다. 그리고이 코드는 다시지도를 작성합니다.src 디렉토리에 자바 리소스를 작성하십시오.

URL resourceUrl = getClass().getResource(FILENAME); 
File file = new File(resourceUrl.toURI()); 
OutputStream output = new FileOutputStream(file); 

괜찮 으면 작동하지만 문제는 내가 두 direcotries 빈/및 src /. 디렉토리 bin /은 eclipse에 의해 생성됩니다. 그래서 src 디렉토리에서 파일을 편집하고 싶습니다. 불행히도 getResource()는 bin/direcoty와 함께 작동합니다. 또한 프로젝트를 다시 빌드하면 맵의 모든 변경 사항이 삭제됩니다. 그래서 src/폴더에서 타일 맵을 편집하고 싶습니다. 나는 그것을 어떻게 얻을 수 있습니까?

일부 absoulte 경로를 하드 코딩하지 않으려합니다.

+0

문제는 응용 프로그램 자체에서 응용 프로그램의 소스를 변경하고 싶습니다. 나는 그것이 허용되는지 모른다. – Alepac

+0

@Alepac 내가 내 프로젝트를 항아리에 포장하기 전까지는 작동한다고 가정합니다. – AvrDragon

답변

3

Eclipse는 기본적으로 workdir = project 디렉토리로 프로젝트를 시작하므로 src는 workdir 아래에 있습니다. 상대 경로 사용

File file = new File("src/fileName"); 
+0

예, 정상적으로 작동합니다. 내 작업 영역에 달렸어? Java에서 자원을 사용하여 작업하는 것이 바람직한 방법은 getResource()이며 직접 파일을 조작하는 것이 아닙니다. – AvrDragon

+0

1) 예, 그것은 workdir에 달려 있습니다. 2) 응용 프로그램이 가정에서 시작한다는 합리적인 요구 3) src에있는 것이 자원이 아니고, 자원이 클래스 경로에 있습니다. –

관련 문제