-、 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:
PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下的资源文件进行操作,当然包括assets下的properties文件了。如对res资源目录下的properties进行写的操作,那么在你获得properties的FileOutputStream的实例时会报FileNotFoundException的异常。
代码如下(操作写成一个PropertiesUtil工具类):
setting.properties中的代码:

url=http://localhost:8080

PropertiesUtil 工具类:

public class PropertiesUtil {
private static Properties urlProps;
        public static Properties getProperties(Context c){
Properties props = new Properties();
try {
//方法一:通过activity中的context攻取setting.properties的FileInputStream
InputStream in = c.getAssets().open(" setting.properties ");
//方法二:通过class获取setting.properties的FileInputStream
//InputStream in = PropertiesUtill.class.getResourceAsStream("/assets/  setting.properties ")); 
props.load(in);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
 
urlProps = props;
//测试是否能获得setting.properties中url的值
System.out.println(urlProps.getProperty("url"));
        return urlProps;
}
 
}
二、对不是放在res资源目录下的properties文件的操作,如放在activity 的 包(package)目录下的setting.properties文件的读写操作。
setting.properties的代码还是一样的,只是路径不同,而是在activity的包(如:com.jansun.activity)目录下:

url=http://localhost:8080

PropertiesUtil工具类:

public class PropertiesUtil {
 
private static Properties urlProps;
private static final path = "/data/data/com.jansun.activity/setting.properties";
//private FileUtils fu = new FileUtils();
public static Properties getProperties(){
Properties props = new Properties();
try {
InputStream in = new FileInputStream(getSettingFile());
props.load(in);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
 
urlProps = props;
return urlProps;
}
 
public static void setProperties( String param, String value ){
Properties props = new Properties();
try {
props.load(new FileInputStream( getSettingFile() ));
 
OutputStream out = new FileOutputStream(FileUtils.setting);
Enumeration<?> e = props.propertyNames();
if(e.hasMoreElements()){
while(e.hasMoreElements()){
String s = (String)e.nextElement();
if(!s.equals(param))
props.setProperty(s, props.getProperty(s));
}
}
props.setProperty(param, value);
props.store(out, null);
//测试是否能够打印出最新的,刚刚修改的url的值
//System.out.println("setProperty success: " + props.getProperty(param));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
private static File getSettingFile(){
File setting = new File(path);
if(!setting.exists()) setting.createNewFile();
return setting;
}
}

Android 对 properties文件的读写操作的更多相关文章

  1. android报错及解决2--Sdcard进行文件的读写操作报的异常

    报错描述: 对Sdcard进行文件的读写操作的时候,报java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...

  2. java 文件的读写操作

    java  文件的读写操作 一.读: public String getSetting() { HttpServletRequest request=org.apache.struts2.Servle ...

  3. INI 文件的读写操作

    在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...

  4. Java程序员的日常—— Properties文件的读写

    在日常的Java程序开发中,Properties文件的读写是很常用的.经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整. 那么本片就来简单的介绍下,如何使用Prop ...

  5. C++学习48 对ASCII文件的读写操作

    如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...

  6. Delphi- ini文件的读写操作

    一.读INI文件示例 procedure TForm1.FormCreate(Sender: TObject); Var MyIni :Tinifile; glAppPath :string; beg ...

  7. java文件的读写操作

    java文件的读写操作主要是对输入流和输出流的操作,由于流的分类很多,所以概念很容易模糊,基于此,对于流的读写操作做一个小结. 1.根据数据的流向来分: 输出流:是用来写数据的,是由程序(内存)--- ...

  8. K:java中properties文件的读写

    Properties类与.properties文件:   Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集的类,不过Properties有特殊 ...

  9. python使用装饰器对文件进行读写操作'及遍历文件目录

    '''使用装饰器对文件进行读写操作''' # def check_permission(func): # '''演示嵌套函数定义及使用''' # def wrapper(*args,**kwargs) ...

随机推荐

  1. SSIS包部署

    1.ssis包部署可以生成部署文件,部署到sqlserver,再通过sqlserver计划作业来执行. 2.也可以通过shell来调用dtsx ,通过windows计划任务来定时调用exe. 不论是哪 ...

  2. as与c++的反射机制对比

    所谓反射机制(Reflection),简单来说,就是可以根据class的名称获取这个class以及其对应的实例.具体来说, 指的是我们可以于运行时加载.探知.使用编译期间完全未知的classes.换句 ...

  3. Jsp-Servlet 那一大堆事儿--1

    为毛全局变量声明时初始化在try内不能用? import javax.servlet.http .*; import java.io.*; import javax.servlet.*; import ...

  4. Mybatis学习(壹)

    一.Mybatis的引言 1.Mybatis框架概念:是数据库持久层的框架,对数据库的访问和操作.Mybatis对JDBC的封装,Mybatis替换JDBC开发,解决DAO中的通用问题. 2.JDBC ...

  5. console的一个小易错点

    以前用控制台都是 console.log("a"); 每次log的都是一个变量或直接的字符串, 但是今天我在log里面写了个表达式, 下面再写各个表达式的时候,发现他莫名奇妙的输出 ...

  6. ubuntu14.04LS中安装SSH

    我只能说: 蛋疼了 因为 1.曾经12.04和13.10的源已经不能使用了(PS毕竟支持的时间到了) 2网上有好多说是更新源的 , 打开etc/...文件 ,然后粘贴一下他们给的源的地址 或许有些是可 ...

  7. log4j配置文件的详解

    1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日志记录的优先级,分为 ...

  8. Objective-C:Foundation框架-常用类-NSNumber

    NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合 ...

  9. 前端面试题之nina分享

    HTML相关 1.<!DOCTYPE>标签的定义与用法. <!DOCTYPE>的定义: <!DOCTYPE>声明位于文档中的最前面的位置,处于<html> ...

  10. Objective-C( 三、方法的声明与实现)

    OC方法的声明与实现 oc方法的声明在@interface中 大括号外@end上面 oc方法的实现在@implementation 中@end上面 OC方法中,一个参数对应一个冒号 方法名: 例  f ...