我是Android编程的新手,所以如果这个问题听起来很愚蠢,请原谅我。我想从Android程序中的文件中读取和写入。我知道如何在Java中这样做。
阅读完文档后,我编写了以下代码。但是,我无法找到此文件的位置。根据文档,它应该在文件夹data / data / package_name。
我有三星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;
}
}
答案 0 :(得分:2)
您可以使用getExternalFilesDir获取SDCard上可以编写文件的目录。使用null
作为常规文件的参数。
路径将是/ mnt / sdcard / Android / data / [package] / files
答案 1 :(得分:1)
除非您的手机已植根或使用模拟器,否则我认为您无法查看私人文件。无论如何,在模拟器上你总是可以做一个“adb shell”并做一个“cd / data / data / package_name /”来查看这些文件。
一个不推荐使用的选项是在openFileOutput(String name,int mode)函数的mode部分中将标志设置为MODE_WORLD_READABLE或MODE_WORLD_WRITEABLE。
否则,如果您想通过文件管理器访问它,您始终可以选择将非私人数据存储在手机的外部存储设备上。请查看Save a File on External Storage部分,了解如何执行此操作。
答案 2 :(得分:0)
openFileOutput()func创建应用程序可访问的私有文件。与SharedPreferences文件(私有文件)相同。我的意思是偏好文件是隐藏的,但可以通过应用程序访问,就像隐藏文件并存储在私有内存中一样..您可以从代码访问但不能使用文件查看器..
答案 3 :(得分: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();
在外部存储器中读写,以便您可以直观地查看文件。 阅读本教程here.