簡體   English   中英

讀寫SD卡列表

[英]Read write SD-card List

我一直在谷歌搜索,我看了StackOverflow並看到了很多例子,但我真的無法掌握它。 我是android的新手,學習如何讀/寫。

也許你們其中一個人可以幫我一些簡單的代碼。 我想要的是保存分數,剩余時間並將檢查點傳遞到文件中,因為您可以在幾天后再次停止和播放。

所以在我的想象中,理想的是(因為它只是簡單的數據)不能使用SQL lite,而只是使用文本文件。 我無法找到如何使用列表,讀取,寫入的檢驗代碼。

如果你從文件中讀取整個列表(字符串)會很好,這個列表的長度可以改變。 然后你可以更新列表,讓我們說list [5] = 200(500),然后把它寫回文件。 您還可以將數據添加到文件(傳遞的檢查點)。

作為一個開始我想出了這個,但我堅持使用檢查點,我不確定是否寫入文件整個文件將被重寫或我正在添加數據:

  private static String filename = "currentgamedata.txt";
    private String myDir = Environment.getExternalStorageDirectory() + "/MyDirectory/"; 
    String enter = System.getProperty( "line.separator" );


   public void WriteCurrentGameData(){

     try {
         BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(openFileOutput( myDir+filename , MODE_WORLD_WRITEABLE)));
         String MinutesLeft=Long.toString(GameTimeLeft);
         String SaveScore=Integer.toString(score);

         writer.write(MinutesLeft+enter);
         writer.write(SaveScore+enter);
         //HERE SHOULD COME SOME CODE FOR THE CHECKPOINTS

         writer.close();

     } catch (Exception e) {
         e.printStackTrace();
     }       
    }

    public void ReadCurrentGameData(){ 

     try {
         BufferedReader input = new BufferedReader( new InputStreamReader(
                 openFileInput( myDir+filename )));
         GameTimeLeft=Long.parseLong(input.readLine());
         score=Integer.parseInt(input.readLine());
         Log.d( "Reader" , Long.toString(GameTimeLeft) );
         Log.d( "Reader" , Integer.toString(score) );
         input.close();

     } catch (Exception e) {
         e.printStackTrace();
     }

 }

對不起,somhow代碼不是很漂亮。 所以總結了一些問題:

  • 如果我想要寫入和閱讀游戲數據以及為什么,我應該使用什么樣的方法? (FE喜歡這里或SQLlite?)
  • 我得到myDir,這是存儲此類數據的最佳位置,還有其他原因和原因?
  • 有沒有辦法使用ArrayList? 有人有一個簡單的例子嗎?

非常感謝!

你有幾個選擇

  • 共享首選項:將私有原始數據存儲在鍵值對中。 可以存儲少量簡單數據。 它可以根據您需要存儲的數據大小來滿足您的需求。
  • 內部存儲 :將私有數據存儲在設備內存中。 我認為這是最好的選擇,因為數據是私有的,其他應用程序無法訪問。
  • 外部存儲 :將PUBLIC數據存儲在共享外部存儲上。 這就是你要做的。 它會工作,但我認為這不是一個好主意,因為用戶可以更改文件並破解游戲。
  • SQLite數據庫 :將結構化數據存儲在私有數據庫中。 在您的情況下可能是一種過度殺傷,數據很簡單,並且不需要關系存儲。
  • 網絡連接

在任何情況下,嘗試使用簡化進一步處理的文件格式,例如,您可以使用屬性文件(在Java中易於編寫/解析),並將每個級別檢查點存儲為屬性或類似的東西(即level_1_checkpoint = 200) )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM