Android下使用Properties文件保存程序设置
废话不说,直接上代码。
读取.properties文件中的配置:
- String strValue = "";
- Properties props = new Properties();
- try {
- props.load(context.openFileInput("config.properties"));
- strValue = props.getProperty (keyName);
- System.out.println(keyName + " "+strValue);
- }
- catch (FileNotFoundException e) {
- Log.e(LOG_TAG, "config.properties Not Found Exception",e);
- }
- catch (IOException e) {
- Log.e(LOG_TAG, "config.properties IO Exception",e);
- }
相信上面这段代码大部分朋友都能看懂,所以就不做过多的解释了。
向.properties文件中写入配置:
- Properties props = new Properties();
- try {
- props.load(context.openFileInput("config.properties"));
- OutputStream out = context.openFileOutput("config.properties",Context.MODE_PRIVATE);
- Enumeration<?> e = props.propertyNames();
- if(e.hasMoreElements()){
- while (e.hasMoreElements()) {
- String s = (String) e.nextElement();
- if (!s.equals(keyName)) {
- props.setProperty(s, props.getProperty(s));
- }
- }
- }
- props.setProperty(keyName, keyValue);
- props.store(out, null);
- String value = props.getProperty(keyName);
- System.out.println(keyName + " "+value);
- }
- catch (FileNotFoundException e) {
- Log.e(LOG_TAG, "config.properties Not Found Exception",e);
- }
- catch (IOException e) {
- Log.e(LOG_TAG, "config.properties IO Exception",e);
- }
上面这段代码,跟读取的代码相比,多了一个if判断以及一个while循环。主要是因为Context.Mode造成的。因为我的工程涉及到多个配置信息。所以只能是先将所有的配置信息读取出来,然后在写入配置文件中。
Context.Mode的含义如下:
1.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。
2.MODE_APPEND:代表该文件是私有数据,只能被应用本身访问,该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
3.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
4.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
注:.properties文件放置的路径为/data/data/packagename/files

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android:数据持久化、Environment、SharedPreferences、内部存储internalStorage
1.数据持久化-SDCard 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //数据持久化-SDCard findViewById(R.id.button1).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { //判断SDCard是否正常加载 if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { //获取SDCard根目录 File sdcardPath = Environment.getExternalStorageDirectory(); //获取SDCard可用空间 long freeSpace = sdcardPath.getFreeSpace(); Log.e( "space" , freeSpace + "" ); } } }); 2.SharedPreferences:(data/data/...
- 下一篇
APPium自动化启动手机应用笔记
java启动方法 1、需要安装JAR 2、启动如下: public class InitDriver { public static AndroidDriver<AndroidElement> initDriver() throws Exception{ File app=new File("自己安装包.apk"); DesiredCapabilities caps=new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android"); caps.setCapability(MobileCapabilityType.APP, app.getAbsolutePath()); caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium"); caps.setCapability(MobileCapabilityType.UDID, "127.0.0.1:62001"); caps.setCapabi...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Red5直播服务器,属于Java语言的直播服务器