2013-10-16 1 views
0

누구나 자바 저장 정수에 대한 간단한 팁을 줄 수 있습니까? 내가 타이머를 사용하여 사용자 정의 시계를 만들고있어 & 내가 프로그램을 종료 할 때 (또는 자동 다시 시작 & 저장 메서드를 호출 할 때 저장 시간을 원합니다 & 시작 부분을 중단했다.Java (int) 시작 시간은 어디에서 중단 되었습니까?

내 코드 : MainClass에서

방법 :

 t = new Timer(); 
     tt = new JGameTimer(); 
     t.scheduleAtFixedRate(tt, 1000, 1000); 

TmerClass :

private static int timeInSeconds = 0, timeInMinutes = 0, timeInHours = 0, timeInDays = 0, timeInYears = 0; 
    private int lastTimeInSeconds, lastTimeInMinutes, lastTimeInHours, lastTimeInDays, lastTimeInYears; 
    private boolean timeHasBeenSet = false; 

    public void run() { 
     if (!timeHasBeenSet) { 
     timeInSeconds = lastTimeInSeconds; 
     timeInMinutes = lastTimeInMinutes; 
     timeInHours = lastTimeInHours; 
     timeInDays = lastTimeInDays; 
     timeInYears = lastTimeInYears; 
     timeHasBeenSet = true; 
     }else{ 
     continueTime(); 
     } 
    } 

    public void saveTime() { 
     lastTimeInSeconds = timeInSeconds; 
     lastTimeInMinutes = timeInMinutes; 
     lastTimeInHours = timeInHours; 
     lastTimeInDays = timeInDays; 
     lastTimeInYears = timeInYears; 
    } 

    public void continueTime() { 
     timeInSeconds++; 
     if (timeInSeconds == 60) { 
      timeInSeconds = 0; 
      timeInMinutes++; 
     } 
     if (timeInSeconds == 10) { 
      saveTime(); 
      System.out.println("Time Saved (Seconds)"); 
     } 
     if (timeInMinutes == 60) { 
      timeInMinutes = 0; 
      timeInHours++; 
     } 
     if (timeInMinutes == 2) { 
      saveTime(); 
      System.out.println("Time Saved (Minutes)"); 
     } 
     if (timeInHours == 24) { 
      timeInHours = 0; 
      timeInDays++; 
     } 
     if (timeInDays == 2920) { 
      timeInDays = 0; 
      timeInYears++; 
     } 
     System.out.println("Time is "+timeInYears+":"+timeInDays+":"+timeInHours+":"+timeInMinutes+":"+timeInSeconds+""); 
    } 
+1

프로그램에서 사용하는 마지막 시간에 저장된 작은 파일을 만들고 싶습니다. – clwhisk

답변

2

java.io.DataOutputStreamjava.io.FileOutputStream을 사용하는 것이 좋습니다. DataOutputStream는 기본 유형을 작성하는 방법을 제공합니다 : 당신은 나중에 DataInputStreamFileInputStream를 사용하여 (같은 순서로)이 다시 읽을 수 있습니다

DataOutputStream output = new DataOutputStream(
     new FileOutputStream(new File("my-file.dat"))); 
output.writeInt(someInt); 
// ... write more values ... 

.

또는 저장하고 데이터를 저장 /로드하기 위해 Java의 직렬화 메커니즘을 사용하는 데이터를 보유하는 클래스를 작성할 수 있습니다.

+0

"my-file.dat"내용 (ints)을 읽는 방법 – Ryan

+0

['DataInputStream.readInt()'] 사용 (http://docs.oracle.com/javase/7/docs/api/java/io /DataInputStream.html#readInt()). – Torious

0

그럼 빠른 팁은 파일에 전체 시간 객체를 저장하는 것입니다. Serializable 인터페이스를 구현 한 다음 웹에서 ObjectOutputStream을 사용하여 직렬화 가능 객체를 저장/읽기하는 방법을 검색하십시오. 종료시 코드를 추가하려면 Running code on program exit in Java을보십시오.

관련 문제