Android程序配置文件使用

xiaoxiao2021-02-28  109

 

Android下用Properties保存程序配置

标签: propertiesandroidexceptionstringfilexml   27920人阅读  评论(8)  收藏  举报   分类: Android应用(105)  读写函数分别如下: [java]  view plain  copy import java.io.FileInputStream;   import java.io.FileOutputStream;   import java.util.Properties;      public Properties loadConfig(Context context, String file) {   Properties properties = new Properties();   try {   FileInputStream s = new FileInputStream(file);   properties.load(s);   catch (Exception e) {   e.printStackTrace();   }   return properties;   }      public void saveConfig(Context context, String file, Properties properties) {   try {   FileOutputStream s = new FileOutputStream(file, false);   properties.store(s, "");   catch (Exception e){   e.printStackTrace();   }   }   orz,是不是发现什么了?对了,这两个函数与Android一点关系都没有嘛。。 所以它们一样可以在其他标准的java程序中被使用 在Android中,比起用纯字符串读写并自行解析,或是用xml来保存配置, Properties显得更简单和直观,因为自行解析需要大量代码,而xml的操作又远不及Properties方便 使用方法如下: 写入配置: [java]  view plain  copy Properties prop = new Properties();   prop.put("prop1""abc");   prop.put("prop2"1);   prop.put("prop3"3.14);   saveConfig(this"/sdcard/config.dat", prop);   读取配置: [java]  view plain  copy Properties prop = loadConfig(this"/sdcard/config.dat");   String prop1 = prop.get("prop1");   注:也可以用Context的openFileInput和openFileOutput方法来读写文件 此时文件将被保存在 /data/data/package_name/files下,并交由系统统一管理 用此方法读写文件时,不能为文件指定具体路径。

可以按照上面使用prop.set(Object obj);

也可以使用:

prop.setProperty(String keyname, String value)

下面注上int、String 的转换相关(不同的转换函数结果是略有不同的)。

int -> String

int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

String -> int

s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s).intValue(); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

以下是答案:

第一种方法:s=i+"";   //会产生两个String对象 第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象

第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常 第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象

-------------------------------------------------------------------- 1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue(); 注: 字串转成 Double, Float, Long 的方法大同小异. 2 如何将整数 int 转换成字串 String ? A. 有叁种方法: 1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = "" + i; 注: Double, Float, Long 转成字串的方法大同小异. JAVA数据类型转换  这是一个例子,说的是JAVA中数据数型的转换.供大家学习 package shenmixiaozhu; import java.sql.Date; public class TypeChange {      public TypeChange() {      }      //change the string type to the int type      public static     int stringToInt(String intstr)      {          Integer integer;          integer = Integer.valueOf(intstr);          return integer.intValue();      }      //change int type to the string type      public static String intToString(int value)      {          Integer integer = new Integer(value);          return integer.toString();      }      //change the string type to the float type      public static     float stringToFloat(String floatstr)      {          Float floatee;          floatee = Float.valueOf(floatstr);          return floatee.floatValue();      }      //change the float type to the string type      public static String floatToString(float value)      {          Float floatee = new Float(value);          return floatee.toString();      }      //change the string type to the sqlDate type      public static java.sql.Date stringToDate(String dateStr)      {          return     java.sql.Date.valueOf(dateStr);      }      //change the sqlDate type to the string type      public static String dateToString(java.sql.Date datee)      {          return datee.toString();      }      public static void main(String[] args)      {          java.sql.Date day ;          day = TypeChange.stringToDate("2003-11-3");          String strday = TypeChange.dateToString(day);          System.out.println(strday);      } } JAVA中常用数据类型转换函数 虽然都能在JAVA API中找到,整理一下做个备份。

转载请注明原文地址: https://www.6miu.com/read-64308.html

最新回复(0)