我创建了一个应用程序,允许用户创建一个笔记并保存。
我知道数据存储在应用程序的私有存储区域中,但我需要通过其文件路径实际查看存储它的文件。谁可以协助我如何做到这一点?我使用了FileOutputStream和FileInputStream方法
public class Utilities {
public static final String FILE_EXTENSION = ".bin";
public static boolean saveNote(Context context, Notes notes){
String fileName = String.valueOf(notes.getDateTime()) + FILE_EXTENSION;
FileOutputStream fos;
ObjectOutputStream oos;
try {
fos = context.openFileOutput(fileName, context.MODE_PRIVATE);
oos = new ObjectOutputStream(fos);
oos.writeObject(notes);
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
return false; //tell the user something went wrong
}
return true;
}
public static ArrayList<Notes> getSavedNotes(Context context) {
ArrayList<Notes> notes = new ArrayList<>();
File filesDir = context.getFilesDir();
ArrayList<String> noteFiles = new ArrayList<>();
for(String file : filesDir.list()) {
if(file.endsWith(FILE_EXTENSION)) {
noteFiles.add(file);
}
}
FileInputStream fis;
ObjectInputStream ois;
for(int i = 0; i < noteFiles.size(); i++) {
try{
fis = context.openFileInput(noteFiles.get(i));
ois = new ObjectInputStream(fis);
notes.add((Notes)ois.readObject());
fis.close();
ois.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
return null;
}
}
return notes;
}
public static Notes getNoteByName(Context context, String fileName) {
File file = new File(context.getFilesDir(), fileName);
Notes notes;
if(file.exists()) {
FileInputStream fis;
ObjectInputStream ois;
try {
fis = context.openFileInput(fileName);
ois = new ObjectInputStream(fis);
notes = (Notes) ois.readObject();
fis.close();
ois.close();
} catch(IOException | ClassNotFoundException e){
e.printStackTrace();
return null;
}
return notes;
}
return null;
}
public static void deleteNote(Context context, String fileName) {
File Dir = context.getFilesDir();
File file = new File(Dir, fileName);
if(file.exists()) {
file.delete();
}
}
}
答案 0 :(得分:0)
文件变量有一个名为&#34; getAbsolutePath&#34;的方法。这将为您提供文件的路径
例如,当您将变量声明为File:
时File filesDir = context.getFilesDir();
然后您可以使用此方法获取如下文件路径:
filesDir.getAbsolutePath();
答案 1 :(得分:0)
您将无法在设备上看到该文件,因为它存储在应用程序的内部存储器中。 只有您的应用程序才能访问该文件。
要想象/浏览该文件,您需要有根设备。 Android studio具有文件浏览器的功能, 工具菜单&gt; Android&gt; Android设备监视器 但是你可以看到公共文件夹结构。
Mahmood提供的答案是正确的。 要检索文件路径,可以使用以下功能。
File filesDir = context.getFilesDir();
String filePath = filesDir.getAbsolutePath();
所有文件都将存储在该位置。
希望这个答案可以帮到你。