感覺真的很愚蠢,不知何故,我有一種感覺,我應該通過「這個」作爲「上下文」的論據,但老實說,這個整體概念對我來說是新的,因爲它對我來說很困惑,我寧願知道100%是什麼,爲什麼在我開始我無休止的語法錯誤追捕之前。作爲Context參數傳入文件I/O方法的內容是什麼?
前幾天我問了一個問題,關於如何使用文件輸入/輸出流將類對象的ArrayList的內容寫入文件以便在應用程序啓動時進行檢索。基本上,我想保存輸入的值。直到我意識到在調用保存和檢索方法時必須傳遞一個Context時,我纔對代碼感到非常自信。那時候,我意識到我不知道背景是什麼打擊了我......所以是的。
這是我的方法: 創建文件(我猜):
private static void updatePickThreeList(Context mC){
FileOutputStream stream = null;
try{
stream=mC.openFileOutput(PICK_THREE_NUMBERS,Context.MODE_PRIVATE);
ObjectOutputStream dout = new ObjectOutputStream(stream);
dout.writeObject(pickThreeNumbers);
stream.getFD().sync();
stream.close();
dout.flush();
}catch(IOException e){
e.printStackTrace();
}
}
檢索數據(我希望):
private static void getPickThreeList(Context mC){
FileInputStream stream = null;
try{
stream=mC.openFileInput(PICK_THREE_NUMBERS);
ObjectInputStream din = new ObjectInputStream(stream);
pickThreeNumbers = (ArrayList<PickThreeNumbers>) din.readObject();
stream.getFD().sync();
stream.close();
din.close();
}catch(IOException e){
e.printStackTrace();
}catch(ClassNotFoundException e1){
e1.printStackTrace();
}
}
而且我認爲我可以調用的第一個方法將ArrayList保存到文件中,然後調用第二種方法來簡單地將保存的值加載到數組中。順便說一句,使用的陣列和其它值:
static List<PickThreeNumbers> pickThreeNumbers = new ArrayList();
final static String PICK_THREE_NUMBERS="pick_three_numbers";
所以,每響應我原來的問題,這兩種方法都需要在上下文中傳遞,而Java是是相當堅定的關於獲取該上下文(去圖),所以當我調用updatePickThreeList(Context)時,究竟作爲「上下文」進入了什麼?
在此先感謝 - 我是一個非常欣賞編程noob。
只是挑剔:),我認爲''flush()'應該發生在'close()'流之前。 –