在Android系统中,文件保存在 /data/data/PACKAGE_NAME/files 目录下。
数据读取
-
public static String read(Context context, String file) {
-
String data = "";
-
try {
-
FileInputStream stream = context.openFileInput(file);
-
StringBuffer sb = new StringBuffer();
-
int c;
-
while ((c = stream.read()) != -1) {
-
sb.append((char) c);
-
}
-
stream.close();
-
data = sb.toString();
-
-
} catch (FileNotFoundException e) {
-
} catch (IOException e) {
-
}
-
return data;
-
}
public static String read(Context context, String file) {
String data = "";
try {
FileInputStream stream = context.openFileInput(file);
StringBuffer sb = new StringBuffer();
int c;
while ((c = stream.read()) != -1) {
sb.append((char) c);
}
stream.close();
data = sb.toString();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
return data;
}
从代码上,看起来唯一的不同就是文件的打开方式了: context.openFileInput(file); Android中的文件读写具有权限控制,所以使用context(Activity的父类)来打开文件,文件在相同的Package中共享。这里的 Package的概念同Preferences中所述的Package,不同于Java中的Package。
数据写入
-
public static void write(Context context, String file, String msg) {
-
try {
-
FileOutputStream stream = context.openFileOutput(file,
-
Context.MODE_WORLD_WRITEABLE);
-
stream.write(msg.getBytes());
-
stream.flush();
-
stream.close();
-
} catch (FileNotFoundException e) {
-
} catch (IOException e) {
-
}
-
}
public static void write(Context context, String file, String msg) {
try {
FileOutputStream stream = context.openFileOutput(file,
Context.MODE_WORLD_WRITEABLE);
stream.write(msg.getBytes());
stream.flush();
stream.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}
在这里打开文件的时候,声明了文件打开的方式。
一般来说,直接使用文件可能不太好用,尤其是,我们想要存放一些琐碎的数据,那么要生成一些琐碎的文件,或者在同一文件中定义一下格式。其实也可以将其包装成Properties来使用:
-
public static Properties load(Context context, String file) {
-
Properties properties = new Properties();
-
try {
-
FileInputStream stream = context.openFileInput(file);
-
properties.load(stream);
-
} catch (FileNotFoundException e) {
-
} catch (IOException e) {
-
}
-
return properties;
-
}
-
-
public static void store(Context context, String file, Properties properties) {
-
try {
-
FileOutputStream stream = context.openFileOutput(file,
-
Context.MODE_WORLD_WRITEABLE);
-
properties.store(stream, "");
-
} catch (FileNotFoundException e) {
-
} catch (IOException e) {
-
}
-
}
阅读(1131) | 评论(0) | 转发(0) |