我在stackoverflow和google上读过很多关于这个参数的主题,但我无法将自定义ArrayList写入文件!我有一个类型为"CustomType"的数组列表。"CustomType"有两个字符串变量:"name"one_answers"description"。
我想保存这个数组列表,以便在关闭和重新打开应用程序后读取它。有人帮我做这个吗?有没有人告诉我当我保存/阅读时会发生什么?
你可以把它写成CSV文件,像这样,
1,name,desc
2,name2,desc2
3,name3,desc3
...
或者您可以使用gson
库- http://code.google.com/p/google-gson/,将其转换为json
字符串,然后将其写入文件,这样当您读取它时,您可以直接从json
获取对象,
我个人会使用第二种方法
编辑:用于写入csv
try
{
FileWriter writer = new FileWriter("<path>/MyFile.csv");
while(lst.next())
{
for(int i = 0; i < columnSize; i++)
{
writer.append(i);
writer.append(',');
writer.append(lst.get(i).getName());
writer.append(',');
writer.append(lst.get(i).getDesc());
}
writer.append('n');
}
}
catch(Exception e)
{
e.printStackTrace();
}
(假设数组列表中的对象有getName()
和getDesc()
方法)
再读一遍可能会有帮助,
获取并解析android中的CSV文件
要保存任何类型的数据,您必须选择任何可用的数据存储队列
1)shared preferences
2)internal storage
3)external storage
4)Sqlite
5)internet server
详细文档在这里
通过任何一种方式,你可以存储数组列表或其他数据,你用来填充屏幕,所以每次用户打开应用程序的数据将加载从存储位置
也可以使用XML文件:
- http://androidideasblog.blogspot.com/2010/01/read-write-and-parse-xml-file-in.html
- http://www.ibm.com/developerworks/opensource/library/x-android/
- 如何创建,读取&android应用程序
- http://www.anddev.org/viewtopic.php?p=30363
这样你就可以使用所有类型的文本和符号,如果你使用的是CSV,你就不能在你的内容中使用分隔符