2015-01-22 2 views
0

java의 특정 메소드에 모든 운영 체제의 프로그램이 리소스를 저장할 수있는 'app data'디렉토리가 있습니다.자바에서 '프로그램 파일'을 가져 오는 일반적인 방법은 무엇입니까?

그렇지 않은 경우 쉽게 얻을 수있는 방법이 있습니까? 나는 OS의 이름이 무엇인지 확인하는 방법을 알아 봤지만 '앱 데이터'를 얻는 방법을 설명하는 방법을 모르겠다.

미리 감사드립니다.

+0

어디에 프로그램 구성, espcially 쓰기 구성을 저장할 수 있습니다 묻는다면 [이 토론] (http://stackoverflow.com/questions/27974857/where-should-i- 직접 실행할 수있는 장소에서 파일에 액세스 할 수있게 해주는 파일 -/27974989 # 27974989). Windows 만 "프로그램 파일"을 가지고 있으며, Mac은 응용 프로그램 디렉토리를 두 ​​개 이상 사용하므로 소리가 나는 것처럼 간단하지 않습니다. – MadProgrammer

+0

어쨌든이 위치에 쓰기 가능한 내용을 저장하지 않아야합니다. Windows 환경에서는 "프로그램 파일"에 대한 쓰기 권한이없고 MacOS에서는 작업 디렉토리가 응용 프로그램 디렉토리가 아닐 수도 있습니다. 응용 프로그램과 함께 읽기 전용 리소스를 "묶어"사용하려는 경우 응용 프로그램 Jar 또는 클래스 경로 내에 해당 리소스를 포함시키고 클래스 # getResource 또는 Class # getResourceAsStream을 사용하여 읽을 수 있습니다. 이게 어떻게 달성되는지 당신이 응용 프로그램을 구축하는 방법에 따라 달라집니다 – MadProgrammer

+0

이 답변은 (http://stackoverflow.com/a/4851436/1180115) Windows 환경에 도움이 될 것입니다 :) –

답변

3

아직까지는 단일 메서드 호출이 없습니다. this post에서 볼 수 있듯이 JNA를 사용할 수 있지만 약간의 추가 코딩이 필요합니다. 난 그냥 다음과 같이 (here 참조)를 하드 코딩하는 것이 좋습니다 :

private String workingDirectory, OS = (System.getProperty("os.name")).toUpperCase(); 
if (OS.contains("WIN")) { 
    workingDirectory = System.getenv("AppData"); 
} 
else { //Linux or Mac 
    workingDirectory = System.getProperty("user.home"); 
    workingDirectory += "/Library/Application Support"; 
} 

그냥 java.util.prefs.Preferences를 사용하여 데이터의 중간 크기에 작은을 저장해야하는 경우.

+0

내가 이것을 사용하고자하는 것은 프로그램에 텍스트를로드하는 수많은 텍스트 파일을 저장하는 것입니다. 숫자는 거의 무한하지만 사용자가 더 많은 데이터를 저장할 때만 가능합니다. 그런 다음 환경 설정이 실행 가능한 옵션이 될 수 있습니까? –

+0

환경 설정은 이름에서 알 수 있듯이 사용자 환경 설정을 저장하기위한 교차 플랫폼 방식으로 사용하기위한 것입니다. 이를 위해서만 사용해야 할 의무는 없지만 엄청난 양의 데이터에 대한 잠재 성을 감안할 때 직접 처리하는 것이 좋습니다. – frenchDolphin

+0

k, ur 답변을 주셔서 감사합니다 –

관련 문제