4

ファイルエクスプローラー(ファイルはsdに保存されています)を介してファイルを選択し、それを読み取るアプリケーションがあります。

私はそれを変更したいので、ファイルをアプリに直接入れ、「内部」からファイルを読み取ります。ファイルをプロジェクトのどこに配置する必要がありますか? どうすればアクセスできますか?

4

3 に答える 3

4

次のコードを使用して、プロジェクト内にファイルを保存できます。

 File cDir = getApplication().getExternalFilesDir(null);
 File saveFilePath = new File(cDir.getPath() + "/" + "yourfilename");

保存されたファイルは、デバイスのアプリケーション パッケージ名の「files」フォルダ内に表示されます。

デバイスで次のパスを試してください。

File manager >> Android >> data >> "your package name" >> files >> new file.
于 2016-07-20T10:44:54.127 に答える
0

デモ

File myExternalFile;

if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
            saveToExternalStorage.setEnabled(false);
        } else {
            myExternalFile = new File(getExternalFilesDir(filepath), filename);
        }

外部ストレージの保存 (FileOutputStream )

try {
                FileOutputStream fos = new FileOutputStream(myExternalFile);
                fos.write(myInputText.getText().toString().getBytes());
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            myInputText.setText("");
            responseText.setText("Saved to External Storage.(StorageFile.txt)");

外部ストレージの取得 (FileInputStream )

try {
                FileInputStream fis = new FileInputStream(myExternalFile);
                BufferedReader br = new BufferedReader(
                        new InputStreamReader(fis));
                String strLine;
                while ((strLine = br.readLine()) != null) {
                    myData = myData + strLine;
                }
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            myInputText.setText(myData);
            responseText
                    .setText("Data retrieved from Internal Storage.(StorageFile.txt)");
于 2013-04-02T07:44:56.537 に答える
0

はい、ファイルを /assets フォルダーに入れて、次のように取得できます。

AssetManager assetManager = getAssets();
InputStream instream = assetManager.open("file.txt");

または res/raw フォルダー:

InputStream raw = getResources().openRawResource(R.raw.file);

変更する場合は、ファイルを外部ストレージ (sdcard など) または内部ストレージ (アプリケーション フォルダーの下) にのみ書き込むことができますdata/data/package_name/。ファイルを外部ストレージに保存すると、ユーザーが手動またはプログラムでファイルを削除するまで保持されます。ただし、このファイルを内部ストレージに保存すると、ユーザーがアプリを削除するか、アプリケーションのキャッシュをクリアすると削除されます。

于 2013-04-02T07:40:43.503 に答える