2

私は Android プログラミングに慣れていないので、この質問がばかげているように聞こえる場合は、申し訳ありません。Android プログラムでファイルを読み書きしたい。私はJavaでそれを行う方法を知っています。

ドキュメントを読んで、次のコードを書きました。ただし、このファイルの場所を特定できません。ドキュメントによると、フォルダー data/data/package_name にあるはずです。

私はSamsung Galaxy S2を持っています。アプリケーションを起動してから閉じました。ファイルを探しに行ったところ、見つかりませんでした。マイファイル/データを調べました。ただし、このデータ フォルダー内にはデータ フォルダーはありません。私は何を間違っていますか?

お手伝いありがとう。

ソース: 1. http://developer.android.com/training/basics/data-storage/files.html 2. http://www.vogella.com/articles/AndroidFileBasedPersistence/article.html#overview

public class MainActivity extends Activity {

private void writeFileToInternalStorage() {
      String eol = System.getProperty("line.separator");
      BufferedWriter writer = null;
      try {
        writer = new BufferedWriter(new OutputStreamWriter(openFileOutput("myfile.txt", MODE_WORLD_WRITEABLE)));
        writer.write("This is a test1." + eol);
        writer.write("This is a test2." + eol);
      } catch (Exception e) {
          e.printStackTrace();
      } finally {
        if (writer != null) {
        try {
          writer.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
        }
      }
}   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    writeFileToInternalStorage();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}
4

4 に答える 4

2

getExternalFilesDirを使用して、ファイルを書き込むことができるSDカード上のディレクトリを取得できます。null一般的なファイルのパラメータとして使用します。

パスは/mnt/ sdcard / Android / data / [package]/filesになります

于 2012-12-16T10:43:51.177 に答える
1

お使いの携帯電話がルート化されるか、エミュレーターを使用するまでは、プライベートファイルを表示することはできないと思います。とにかく、エミュレーターでは、いつでも「adbシェル」を実行し、「cd / data / data /package_name/」を実行してファイルを確認できます。

非推奨のオプションの1つは、openFileOutput(String name、int mode)関数のmodeセクションでフラグをMODE_WORLD_READABLEまたはMODE_WORLD_WRITEABLEとして設定することです。

それ以外の場合、ファイルマネージャを介してアクセスする場合は、携帯電話の外部ストレージに非プライベートデータを保存するオプションが常にあります。その方法については、「外部ストレージにファイルを保存する」セクションを参照してください。

于 2012-12-16T10:46:10.903 に答える
0

次の方法で、data/data/package_name/files フォルダーのファイルを読み書きできます。

書く

BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(new 
                        File(getFilesDir()+File.separator+"MyFile.txt")));
bufferedWriter.write("lalit poptani");
bufferedWriter.close();

読む

BufferedReader bufferedReader = new BufferedReader(new FileReader(new 
File(getFilesDir()+File.separator+"MyFile.txt")));
String read;
StringBuilder builder = new StringBuilder("");

while((read = bufferedReader.readLine()) != null){
    builder.append(read);
}
Log.d("Output", builder.toString());
bufferedReader.close();

ファイルを視覚的に表示できるように、外部メモリに読み書きする。ここでこのチュートリアルを読んでください。

于 2012-12-16T10:52:55.330 に答える
0

openFileOutput() func は、アプリケーションがアクセスできるプライベート ファイルを作成します。SharedPreferences ファイル (プライベート ファイル) と同じです。つまり、設定ファイルは非表示ですが、ファイルが非表示になってプライベートメモリに保存されるのと同じように、アプリケーションからアクセスできます.コードからアクセスできますが、ファイルビューアーではアクセスできません..

于 2012-12-16T10:37:15.397 に答える