0
我正在編寫一個應用程序,需要每隔一段時間從android文件系統進行讀寫操作。該應用程序由一個包含三個不同片段的ActionBarActivity組成。我的計劃是創建一個模型類,它管理我所有的數據,並在它認爲合適的時候讀取/寫入到android文件系統。到目前爲止,我無法弄清楚如何讓一個不是活動的課程獲得這些功能。Android文件系統可以從不是活動的類寫入嗎?
如果可能的話,我的最終目標是允許I/O在模型類中自行工作,以儘可能少地保持耦合。
這是我正在嘗試運行在我的模型中的當前代碼。
private String readFromFile() {
String ret = "";
Scanner s;
ArrayList<Player> loadedRosterList = new ArrayList<Player>();
try {
InputStream inputStream = openFileInput("applicationRoster.txt");
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
while ((receiveString = bufferedReader.readLine()) != null) {
s = new Scanner(receiveString);
s.useDelimiter(",");
Player newP = new Player(s.next(), s.next(), s.next());
loadedRosterList.add(newP);
}
inputStream.close();
currentRoster.replacePlayers(loadedRosterList);
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
Android項目就像其他任何Java項目一樣。只需添加一個新的類文件並在活動中使用它。問題是什麼? –
我正試圖創建一個與活動分開的新類。由於這個原因,android現在允許我直接訪問文件系統。我試圖找到解決方法來保持我的模型。 – cmw2379
@ cmw2379 - 這是不正確的。 Android不關心你從哪個類訪問文件系統,只關心它運行的過程以及誰擁有它。一些特定的文件訪問方法依賴於一個Context對象來找出合適的目錄路徑,但是你可以按照Szymon的建議傳遞一個Context,或者從你的Activity類的Context中找出正確的路徑,然後保存/傳遞需要執行文件系統工作的類的實際路徑(您不必擔心以您需要擔心泄漏Context對象的方式泄漏路徑) –