2011-04-07 61 views
3

Android爲您提供getDir(我假設這意味着我將擁有myappspace/somedirectory)在您的應用程序空間中創建一個目錄。但是,如果你在openFileOutput/Input調用中有路徑分隔符給你一個錯誤,那麼當你給出一個錯誤時,你如何讀或寫該目錄中的文件?intenal存儲和本地目錄中的Android文件

回答

6

getDir返回一個File對象。要操縱目錄和文件結構,您可以繼續使用File對象。例如

File dir = getDir("myDir", Context.MODE_PRIVATE); 
File myFile = new File(dir, "myFile"); 

openFileOutput只是基於某些文本條件返回FileOutputStream。我們所要做的就是創建對象

FileOutputStream out = new FileOutputStream(myFile); 

從這裏開始,您將繼續正常工作。

String hello = "hello world"; 
out.write(hello.getBytes()); 
out.close(); 

FileInputStream將遵循相同的指導原則。

4

問題是,openFileInput()openFileOutput()直接使用該目錄中的文件,因此它們不需要絕對路徑名。

編輯:更準確地說,他們使用getFilesDir()返回的目錄中的文件,而不是getDir(),它通常是軟件包根目錄。

如果你想創建相對於getDir()自定義目錄,那麼你就需要使用類/方法以外openFileInput()openFileOutput()(如使用的InputStream的OutputStream和有關文件「讀者」 /「作家'班)。

+0

呵呵,所以如果我在我的app空間x.txt和dummy/x.txt中android會做什麼呢? – arinte 2011-04-07 18:43:32

+0

@arinte:'app space'是什麼意思? – Squonk 2011-04-07 18:46:13

+0

應用程序本地存儲,但你幾乎已經回答了我的問題。在我看來,這是API中的一個漏洞。爲什麼有便利的方法來創建一個目錄,但不支持其他便利方法。 – arinte 2011-04-07 18:51:18

相關問題