【发布时间】:2014-03-07 20:55:56
【问题描述】:
我是安卓新手。我想制作一个程序,在其中我将一些文本写入一些文件并再次读取它们。
我对如何做到这一点感到困惑。
我首先使用下面的代码进行阅读:
InputStreamReader in = new InputStreamReader(ctx.openFileInput("syncConfig.ini"));
它不适用于我正在测试的三星、LG 和索尼之间的 LG 设备。
我认为在某些其他设备上可能无法正常工作。
然后我使用下面的代码:
String sdcard = Environment.getExternalStorageDirectory().getPath();
FileInputStream in = new FileInputStream(new File(sdcard+"/yekana_data/syncConfig.ini"));
目录yekana_data 存在。
然后我认为某些设备可能没有sdcard或未安装或设备连接到PC等,此时我的程序无法运行或稍后会出错。
我想写到一个所有设备都支持它并且我的程序随时都可以访问的地方。
我该如何解决?
【问题讨论】:
-
Context.openFileOutput() 适用于所有正常运行的 Android 设备,以获得有效的上下文。如果文件之前已通过某种方式(例如前者)创建(自上次安装应用程序或手动清除其数据以来),则 openFileInput() 将起作用。
-
对于 android,getExternalStorage() 不一定指的是 SD 卡。如果设备没有 SD 卡(例如,我的 HTC 卡),它将写入手机的内部磁盘(在与 openFileInput() 不同的位置)。所以它应该适用于基本上所有的设备。
-
我可以解决我的 LG 问题,但我不了解 android 上的文件系统,我在this 地址找到了它。对我来说完美的存储是内部存储。
标签: android android-sdcard fileinputstream fileoutputstream android-file