我有一个应用程序让我通过文件浏览器选择一个文件(该文件存储在sd中),然后读取它。
我想修改它,因此它将文件直接放入应用程序并从“内部”读取文件。我必须把文件放到项目中?我该如何访问它?
答案 0 :(得分:4)
您可以使用以下代码将文件保存在项目中:
File cDir = getApplication().getExternalFilesDir(null);
File saveFilePath = new File(cDir.getPath() + "/" + "yourfilename");
您可以在设备中的应用程序包名称的“files”文件夹中看到已保存的文件。
在您的设备中尝试以下路径:
File manager >> Android >> data >> "your package name" >> files >> new file.
答案 1 :(得分:0)
是的,您可以将文件放入/ assets文件夹,并按如下方式检索:
AssetManager assetManager = getAssets();
InputStream instream = assetManager.open("file.txt");
或res / raw文件夹:
InputStream raw = getResources().openRawResource(R.raw.file);
如果要修改它,您只能将文件写入外部存储(例如SD卡),
或者进入内部存储(在您的应用程序文件夹data/data/package_name/
下)。
如果将文件存储到外部存储中,它将一直存在,直到用户手动或以编程方式删除该文件。但是,如果将此文件存储到内部存储中,则会在用户删除应用程序或清除应用程序缓存时将其删除。
答案 2 :(得分:0)
File myExternalFile;
if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
saveToExternalStorage.setEnabled(false);
} else {
myExternalFile = new File(getExternalFilesDir(filepath), filename);
}
保存外部存储(FileOutputStream)
try {
FileOutputStream fos = new FileOutputStream(myExternalFile);
fos.write(myInputText.getText().toString().getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
myInputText.setText("");
responseText.setText("Saved to External Storage.(StorageFile.txt)");
获取外部存储(FileInputStream)
try {
FileInputStream fis = new FileInputStream(myExternalFile);
BufferedReader br = new BufferedReader(
new InputStreamReader(fis));
String strLine;
while ((strLine = br.readLine()) != null) {
myData = myData + strLine;
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
myInputText.setText(myData);
responseText
.setText("Data retrieved from Internal Storage.(StorageFile.txt)");