簡體   English   中英

如何在Android中訪問內部存儲

[英]How to access to internal storage in Android

我想將通過Android應用程序生成和修改的.docx文件存儲到android手機的內部存儲中(如果有幫助,請使用所有相同型號的手機)。 我已經加載了模板(位於應用程序中)並修改了工作的字段,但是在如何保存文件方面受阻。

我正在使用docx4j,它具有一種保存方法:

private void writeDocxToStream(WordprocessingMLPackage template,
        String target) throws IOException, Docx4JException {
            File f = new File(target);
            template.save(f);
}

我嘗試了其他“手動”方式,但始終遇到相同的問題:

目標目錄的輸入應該是什么?

對於外部存儲來說,這樣做似乎很容易,但是對於內部存儲而言,這是另一回事。

當我只是嘗試在test.txt中輸出String,然后使用經典的BufferedReaderInputStreamReaderFileInputStream方式將其取回時,無論如何我都無法獲得此信息。

關於此主題的信息非常分散,我已經在下午閱讀了有關實現存儲的數千種方法,但沒有一種與我的問題相對應。

我已在清單中設置了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ,只是為了確保它不會改變任何內容。

而且,也許與問題有關,我無法訪問測試設備(可以運行該應用程序的Samsung Galaxy 5S)上的文件(從設備還是從計算機),我似乎擁有所有文件夾,但沒有它們中的任何文件,除了幾個xml和txt文件...(但是,執行以下操作時,我仍然一無所獲:在EditText中寫入-在文件中存儲-在.txt中保存文件-檢索字符串-在textView中查看字符串)。

這非常重要,因為在創建.docx文件之后,我必須檢索它們以供進一步使用。

感謝您的回答,如果可以提供更多信息,請告訴我,我知道我的問題還不清楚。

對於外部存儲來說,這樣做似乎很容易,但是對於內部存儲而言,這是另一回事。

要寫入外部存儲 ,請使用兩參數File構造函數,在其中提供指向外部存儲上某個根位置的File對象,例如:

new File(getExternalFilesDir(null), target);

要寫入內部存儲器 ,請使用兩參數File構造函數,在其中提供指向內部存儲器上某個根位置的File對象,例如:

new File(getFilesDir(), target);

如果您將文件寫入應用的私有內部存儲,則無需擁有權限android.permission.WRITE_EXTERNAL_STORAGE

在您的代碼中,通過調用

context.getDir("testfile", Context.MODE_WORLD_READABLE)).getPath().toString()+"/test.docx";

該文件將寫入路徑

/data/data/com.yourpackage.name/app_testfile/test.docx

如果寫入操作成功,則可以使用上述路徑讀取和檢索文件的內容。

暫無
暫無

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

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