如何将ArrayList <string>保存到Android存储中的txt文件?

时间:2015-07-08 10:01:13

标签: java android string arraylist save

我有ArrayList喜欢这个:

savedQuestions = new ArrayList<String>();

如何将其保存到Android本地存储中的文本文件单击按钮?

1 个答案:

答案 0 :(得分:0)

即使ArrayList类在默认情况下是可序列化的,你也必须使Figur类(以及它使用的任何类)也可以序列化。这可能意味着:

class Figur implements Serializable {
    // To handle the version of your class
    private static final int serialVersionUID = 1L;

    // Your code would go here
}

然后你必须用类似的东西序列化:

ObjectOutputStream fileOut = new ObjectOutputStream(new FileOutputStream("file"));
fileOut.writeObject(list);
fileOut.close();

反序列化:

ObjectInputStream fileIn = new ObjectInputStream(new FileInputStream("file"));
list = (ArrayList) fileIn.readObject();
fileIn.close();

另请注意,当您写入文件时,您希望附加到文件中的前一项而不是覆盖(错误)它们。 我认为objectOutputStream()或writeObject()可能在其中有一个可选参数,以允许它追加而不是覆盖。 示例:writeObject(list,true)而不是writeObject(list)。你必须研究这个以确定正确的方法。

此外,如果您无法使序列化工作,您可以将“circle,rect,line,color,fill”的值存储为文件中的一个figur对象,作为带有分隔符的单行,例如'逗号''在他们之间。然后从文件中读取一行并使用这些值来制作一个填充的figur对象。 例: 将这些字符串存储在文件中: 3,6,7,红色,4 6,3,4,蓝色,8

然后,当您阅读文件的内容时,构建您的对象:

Figur figure1 = new Figur("3","6","7","red","4");
Figur figure2 = new Figur("6","3","4","blue","8");

ArrayList<Figur> figurs =new ArrayList<Figur>();
figurs.add(figure1);
figurs.add(figure2);

它不如使用序列化那么高效,但是它完成了工作,文件的内容是人类可读的形式。

从链接https://community.oracle.com/thread/1193052?start=0&tstart=0