在API级别8中,将字符串的ArrayList保存为SharedPreferences的最佳方法是什么?我现在唯一想到的方法是将所有字符串保存为一个用逗号分隔的字符串,然后以这种方式保存。但是我不知道字符串是否有最大大小。

有一个更好的方法吗?

最佳答案

我建议您将arraylist保存为Android中的内部存储文件。例如,对于名为text_lines的数组列表:

内部存储文件IO(写):

try {
   //Modes: MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITABLE
   FileOutputStream output = openFileOutput("lines.txt",MODE_WORLD_READABLE);
   DataOutputStream dout = new DataOutputStream(output);
   dout.writeInt(text_lines.size()); // Save line count
   for(String line : text_lines) // Save lines
      dout.writeUTF(line);
   dout.flush(); // Flush stream ...
   dout.close(); // ... and close.
}
catch (IOException exc) { exc.printStackTrace(); }

内部存储文件IO(读取):
FileInputStream input = openFileInput("lines.txt"); // Open input stream
DataInputStream din = new DataInputStream(input);
int sz = din.readInt(); // Read line count
for (int i=0;i<sz;i++) { // Read lines
   String line = din.readUTF();
   text_lines.add(line);
}
din.close();

10-08 02:25