2014-09-15 2 views
0

jar 파일로 실행하면이 .properties 파일이 바탕 화면에 만들어집니다. 일을 깨끗하게 유지하려면 폴더와 같은 다른 곳에이 파일을 저장하는 경로를 어떻게 설정할 수 있습니까? 또는 심지어 병 자체도 작동하도록하는 데 어려움을 겪고있었습니다. 당신이 경로없이 파일 이름을 사용하고 있기 때문에 나는특정 경로에 파일 저장 (Java)

import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.util.Properties; 

public class DataFile { 
public static void main(String[] args) { 

    Properties prop = new Properties(); 
    OutputStream output = null; 

    try { 

     output = new FileOutputStream("config.properties"); 

     prop.setProperty("prop1", "000"); 
     prop.setProperty("prop2", "000"); 
     prop.setProperty("prop3", "000"); 

     prop.store(output, null); 

    } catch (IOException io) { 
     io.printStackTrace(); 
    } finally { 
     if (output != null) { 
      try { 
       output.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

    } 
    }  
} 
+0

무엇입니까? 아마도 [Preferences API] (http://docs.oracle.com/javase/8/docs/technotes/guides/preferences/index.html)가 더 적합할까요? –

+0

속성 파일은 무엇입니까? 나는 사용자가 입력 한 정보를 저장하기 위해이 정보를 사용하기 때문에 다음에 프로그램을 실행하면 정보가 지워지지 않습니다. –

+0

두 가지 선택이 있습니다. 프로그램을 시작하거나 절대 경로 참조를 지정하는 링크의 "시작"참조를 변경하십시오 – MadProgrammer

답변

0

.. 당신이 CWD의 끝을 생성하는 파일을 다른 사람이주는 계획 및 데스크톱은 .properties의 파일에 어수선 싶지 않을 것이다. 프로세스가 OS에서 상속하는 현재 작업 디렉토리입니다. 데스크탑 디렉토리에서 jar 파일을 실행하면 상대 경로를 사용하는 모든 파일이 데스크탑 또는 그 하위 디렉토리에서 종료됩니다.

파일의 절대 위치를 제어하려면 절대 경로를 사용해야합니다. 절대 경로는 항상 슬래시 '/'로 시작합니다.

절대 경로 :

/etc/config.properties 

상대 경로 :

sub_dir/config.properties 

가장 간단한 방법은 하드 코드에 파일 경로 문자열에 어떤 경로입니다. 당신은 물론 설치 프로그램의 명령 줄을 사용하여 전달할 수있는 속성 경로 대신에 하드가 코딩 할 수

output = new FileOutputStream("/etc/config.properties");

. 경로 이름과 파일 이름을 함께 연결합니다.

String path = "/etc"; 
String full_path = "/etc" + "/" + "config.properties"; 
output = new FileOutputStream(full_path); 

java의 windows 경로는 백 슬래시 대신 슬래시를 사용합니다. 자세한 내용을 확인하십시오 file path Windows format to java format