我无法在手机记忆库中找到我保存的文本文件

时间:2015-07-07 05:54:15

标签: android file memory text

我正在使用此代码存储一个文本文件,其中包含'开始'按下应用程序中的按钮并进一步阅读。我试图将文件保存在用户安装应用程序的内存中(即SD卡或手机内存)。我正在存储的文件被读取并显示在logcat中,但我无法找到它保存在内存中的位置(手机或SD)。

public void write_data(String s, Queue<SeismicDataPoint> t) throws IOException {

    String path = getBaseContext().getFilesDir().getAbsolutePath();
    File dir = new File(path);
    if (!dir.exists())
        dir.mkdirs();
    FileOutputStream fOut = getBaseContext().openFileOutput(s + ".txt", MODE_APPEND);

    OutputStreamWriter osw = new OutputStreamWriter(fOut);
    SeismicDataPoint temp ;
    for(int i = 0; i < bufferSize; i++)

    {
        temp=t.poll();
        osw.append(temp.timestamp+" "+temp.x+" "+temp.y+" "+temp.z+"\n");

    }



    osw.flush();
    osw.close();


}
public void read_data(String s) throws IOException {



    BufferedReader b = new BufferedReader(new FileReader(s+".txt"));
    while(true){
    String osw = b.readLine();

        if(osw==null)break;




}

这也是清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.falldetect" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

2 个答案:

答案 0 :(得分:1)

getFilesDir指向内部存储目录。如果你想在外部存储东西,那么你应该使用路径作为

String path = Environment.getExternalStorageDirectory().toString();

另请阅读http://www.grokkingandroid.com/how-to-correctly-store-app-specific-files-in-android/

更新:检查此代码

private void saveFile() {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/files");
    myDir.mkdirs();
    File file = new File (myDir, "sample.txt");
    if (file.exists ()) file.delete ();
    try {
        FileOutputStream out = new FileOutputStream(file);
        PrintWriter pw = new PrintWriter(out);
        pw.println("my sample txt");
        pw.flush();
        pw.close();
        out.flush();
        out.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

答案 1 :(得分:0)

应用程序私有数据文件存储在<internal_storage>/data/data/<package>中 如果文件创建为MODE_PRIVATE,则无法通过FileManager等应用程序查看/访问该文件。