对android设备上的文件系统感到困惑

对android设备上的文件系统感到困惑,android,android-sdcard,fileinputstream,fileoutputstream,android-file,Android,Android Sdcard,Fileinputstream,Fileoutputstream,Android File,我是android新手。我想做一个程序,在其中我将写一些文本到一些文件中,并再次读取它们 我不知道该怎么做 我首先使用以下代码进行阅读: InputStreamReader in = new InputStreamReader(ctx.openFileInput("syncConfig.ini")); 它在三星、LG和索尼之间的LG设备上不起作用,我正在对它们进行测试 我认为在其他一些设备上可能不起作用 然后我使用以下代码: String sdcard = Environment.getExt

我是android新手。我想做一个程序,在其中我将写一些文本到一些文件中,并再次读取它们

我不知道该怎么做

我首先使用以下代码进行阅读:

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\u data
已存在

然后我认为一些设备可能没有SD卡或未安装SD卡,或者设备连接到PC等,此时我的程序无法工作,或者以后会出错

我想写一个地方,所有设备都支持它,并且在任何时候都可以访问我的程序


如何解决这个问题?

您可以在android开发者网站上了解更多关于保存文件的信息


检查上下文。openFileOutput()适用于所有正常运行的Android设备,以获得有效的上下文。openFileInput()将在文件之前(自上次安装应用程序或手动清除其数据以来)通过某种方式(如前者)创建的情况下工作。对于android,getExternalStorage()不一定指SD卡。如果设备没有SD卡(例如,我的HTC卡),它将写入手机的内部磁盘(位于与openFileInput()不同的位置)。所以它基本上可以在所有设备上运行。我可以解决我的LG问题,但我不了解android上的文件系统,我在地址找到了它。对我来说,最理想的存储方式是内部存储。是的,我发现:内部存储:1-它总是可用的。默认情况下,此处保存的2个文件只能由您的应用程序访问。3-当用户卸载应用程序时,系统将从内部存储中删除所有应用程序文件。