2013-05-21 4 views
0

내 codenameone 응용 프로그램에 저장소 파일을 추가했습니다. 일부 이벤트에서 특정 저장 파일을 삭제하고 일부 오래된 필터링 된 데이터 및 새 데이터로 다시 만들고 싶습니다. 삭제시 제대로 작동하지 않습니다.codenameone - 저장소 파일이 삭제되지 않습니다.

먼저 나는 StorageManager 클래스에서 명확한 저장 파일의 방법을 만들 :

public void clearData(String pStorageTable){ 
    Storage.getInstance().deleteStorageFile(pStorageTable); 
} 

다른 클래스에서 나는 이런 식으로이 방법을 사용 :

:

여기
// load all data of specific storage file 
// ... 

new DBManager().clearData(ThreeTrans.DB_NAME); 

// write old data with filtering of specific ID and new data 
// ... 

쓰기 데이터의 방법이다

public void write(ThreeTrans pTT){ 
    if(store == null) { 
     store = Storage.getInstance(); 
    } 

    DB_NAME = "TT"; 

    if(!store.exists(DB_NAME)) { 
     Hashtable depHash = new Hashtable(); 
     String k = "1" + pTT.getNumber(); 
     depHash.put(k, pTT.toString()); 
     store.writeObject(DB_NAME, depHash); 
    } 
    else { 
     Hashtable depHash = (Hashtable)store.readObject(DB_NAME); 

     if (!depHash.containsValue(pTT.getNumber())) { 
      String k = String.valueOf(getLastKeyNumber()); 
      depHash.put(k, pTT.toString()); 
      store.writeObject(DB_NAME, depHash); 
     } 
    } 
} 

처음에는 저장 파일 삭제를 위해이 방법을 사용했습니다 :

public void clearData(String pStorageTable){ 
    if(store == null) { 
     store = Storage.getInstance(); 
    } 

    for (String str : store.listEntries()) { 
     if(str.toLowerCase().startsWith(pStorageTable)) { 
      store.deleteStorageFile(str); 
     } 
    } 
} 

이 문제가 발생하면이 방법이 다음과 같이 변경됩니다.

public void clearData(String pStorageTable){ 
    Storage.getInstance().deleteStorageFile(pStorageTable); 
} 
+0

"잘 작동하지 않는다"는 것은 무엇을 의미합니까? 예외가 있습니까? 최종 데이터에 필요한 것이 전부가 아닙니까? –

+0

어쨌든 작동하지 않습니다. 예외는 제기되지 않았고 아무 것도 행해지 지 않았다. – Ahmad

+0

라이브러리의 저장소 파일입니까? 어느 것? –

답변

0

출력 스트림이나 파일을 사용하는 입력 스트림에서 close()를 호출하지 않았다고 가정하고 파일에 대한 잠금이 여전히 있습니다. 일반적으로 이러한 문제의 경우입니다.

+0

저장소 파일에 데이터를 저장하기 위해 writeObject 메서드를 사용하고 저장소 파일에서 데이터를 읽기 위해 readObject 메서드를 사용합니다. close() 메서드를 호출해야합니까? – Ahmad

+0

아니요. 쓰기 코드와 적절한 삭제 코드를 포함한 코드를 게시 할 수 있습니까? 꽤 매끄럽게 작동해야합니다. 시뮬레이터 나 장치 또는이 둘 모두에 있습니까? –

+0

내 질문을 편집했습니다. 귀하의 두 번째 질문의 대답은 예, 나는이 문제에 대한 다른 출력을 가지고 그들 둘 다 (시뮬레이터와 장치)가 올바르지 않습니다. – Ahmad

관련 문제