2017-07-27 64 views
0

我想编写一个程序,该文件用一些内容将文件保存在移动设备中。问题是我无法在移动设备的文件管理器中看到该文件。如何看到和在哪个文件夹?如何访问我在内部存储器中保存的文件

下面是代码:

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import java.io.FileOutputStream; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     String fileName = "MyFile"; 
     String content = "hello world"; 

     FileOutputStream outputStream = null; 
     try { 
      outputStream = openFileOutput(fileName, Context.MODE_APPEND); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

编辑1:更新的代码

public class MainActivity extends AppCompatActivity { 



    String content = "hello world"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    File f= getExternalFilesDir("arnav"); 
     Toast.makeText(this,""+f,Toast.LENGTH_SHORT).show(); 
File f1=new File(f,"ank.txt"); 
     FileOutputStream outputStream = null; 
     try { 
      outputStream = openFileOutput(f1.getAbsolutePath(), Context.MODE_APPEND); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

现在的问题是,文件夹(arnav)是越来越创建,但文件(ank.txt)是没有得到创建?如何解决?

回答

0

要访问通过你需要去以下位置的应用程序存储的文件:内部存储>安卓>数据> com.package_name.app_name>文件,在这里你可以找到应用程序保存的数据。

+0

问题产生的是,“com.package_name.app_name”是不是在这种情况下得到建立。我做错了什么吗?我需要提供清单中的任何权限吗? – Ankit

+0

它应该被创建。这样的文件将始终为应用程序数据创建。请仔细检查,您的设备的内部存储。 –

0

“openFileOutput()”方法会将文件保存在此路径中:/ data/data/package-name/files/ 由于“/ data/data”目录受保护,您无法看到文件,只有在根模式下可以看到的移动设备。

+0

然后该怎么做才能将文件保存在移动设备中,以便在文件管理器 – Ankit

+0

中可以看到,您可以将文件保存在外部存储器中。 “Environment.getExternalStorageDirectory()”它返回主共享/外部存储目录。然后它在文件管理器中可见。 –

+0

但它应该保存在内部存储中,就好像SD卡不存在那么我的文件将不会显示? – Ankit

0
MainActivity.this.getFilesDir().getAbsolutePath() 

将返回你的文件路径由 openFileOutput

相关问题