2012-03-10 6 views
0

Robocode를 사용하여 더 나은 성능 (최상의 체력 수준 달성)을 제공하기 위해 진화하는 GA 탱크를 개발했으며이를 위해 각 탱크에 대한 정보를 하나의 파일에 저장해야합니다.Java 구성과 유사한 파일 만들기

클래스 탱크는 다음과 같은 몇 가지 변수가됩니다

  • 속도를
  • 각운동량
  • 내가 할 수있는 방법을 싶습니다
  • 스캔 속도

화재 전력 이러한 변수를 "settings.txt"라는 파일에 저장하고 전투 후에 업데이트 할 수 있습니다. 이 같은 파일을 작성하는 가장 좋은 방법이 될 것입니다 쉽게 각 전투 후 변수 값을 업데이트 할 수 무엇

robot(1): 
speed=12 
angMomentum=6 
firePower=2 
scanRate=10 

robot(2): 
speed=8 
angMomentum=4 
firePower=3 
scanRate=13 

: 나는 파일을 원하는

처럼 포맷해야합니까?

많은 감사.

답변

0

모든 데이터를 하나의 큰 파일로 원한다면. 아마도 객체 구조를 유지할 수 있기 때문에 JSON format과 같은 것을 사용하는 것이 좋습니다. 변수, 객체 및 배열을 사용하십시오.

많은 JSON 독자와 작성자가 있습니다. 심지어 일부 '관계자는'json.org bij 찾을 수 here

과 같이 할 수 귀하의 JSON :

{ 
    "tanks":[ 
     {"id": 1, "speed": 12, "angMomentum": 6, "firePower": 2, "scanRate": 10}, 
     {"id": 2, "speed": 8, "angMomentum": 4, "firePower": 3, "scanRate": 13} 
    ] 
} 
0

당신은 정말 당신이 저장하고 디스크에 일반 자바 객체를 검색 할 수 있습니다 자바 Serialization을 조사한다 .

사용자 정의 형식을 직접 만들고 싶다면 직접 파서를 구현해야합니다. java.ioFile API를 사용하여 String을 디스크에 쓰거나 파일 (예 : 줄 단위)에서 읽을 수 있습니다.

+1

장기간에 걸쳐 객체를 유지 관리해야하는 경우 직렬화가 매우 취약합니다. 나중에 클래스를 수정할 때 잘못되기 쉽고 이미 작성된 이전 버전을 읽을 수 없습니다. RMI를 위해 유선을 통해 데이터를 전송할 때만 유용합니다. –

0

당신이 좋아하는 XML 형식의 개체를 직렬화 XStream을 사용할 수

<tank> 
    <id>1</id> 
    <speed>12</speed> 
    <angMomentum>6</angMomentum> 
    <firePower>2</firePower> 
    <scanRate>10</scanRate> 
</tank> 

그 객체가 (당신은 XStream을 객체에 주석이나 방법을 사용할 수 있습니다) XML로 표현하는 방법을 정의하기 정말 쉽습니다 .

0

Properties 클래스에는 필요한 모든 것이 있습니다. Using Properties to store configuration values. 디스크에 대한 읽고 쓰기를 처리하며 값을 저장하고 검색하는 데 Map으로 작동합니다. 직렬 저장이 필요하지 않으며 장기 저장 또는 XML/JSON 구문 분석과 관련하여 매우 취약합니다.

관련 문제