Android下使用Properties文件保存程序设置
废话不说,直接上代码。 读取.properties文件中的配置: StringstrValue=""; Propertiesprops=newProperties(); try{ props.load(context.openFileInput("config.properties")); strValue=props.getProperty(keyName); System.out.println(keyName+""+strValue); } catch(FileNotFoundExceptione){ Log.e(LOG_TAG,"config.propertiesNotFoundException",e); } catch(IOExceptione){ Log.e(LOG_TAG,"config.propertiesIOException",e); } 相信上面这段代码大部分朋友都能看懂,所以就不做过多的解释了。 向.properties文件中写入配置: Propertiesprops=newProperties(); try{ props.load(context.openFileInput("config.properties")); OutputStreamout=context.openFileOutput("config.properties",Context.MODE_PRIVATE); Enumeration<?>e=props.propertyNames(); if(e.hasMoreElements()){ while(e.hasMoreElements()){ Strings=(String)e.nextElement(); if(!s.equals(keyName)){ props.setProperty(s,props.getProperty(s)); } } } props.setProperty(keyName,keyValue); props.store(out,null); Stringvalue=props.getProperty(keyName); System.out.println(keyName+""+value); } catch(FileNotFoundExceptione){ Log.e(LOG_TAG,"config.propertiesNotFoundException",e); } catch(IOExceptione){ Log.e(LOG_TAG,"config.propertiesIOException",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 本文转自 sw840227 51CTO博客,原文链接:http://blog.51cto.com/jerrysun/804789,如需转载请自行联系原作者