我正在制作一个android应用程序,我需要将double值(BodySize)保存为List形式的文件以绘制图形。实际上,此代码采用“列表”的形式,我尝试将其更改为“列表”。但这会使“ list.add(BodySize)”出错。我该如何解决这个问题?
public static void updateFile(double BodySize) {
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try{
List<double[]> list = getDoubles();
list.add(BodySize);
fos = new FileOutputStream("user_data.txt");
oos = new ObjectOutputStream(fos);
oos.writeObject(list);
}catch(Exception e){
e.printStackTrace();
try {
oos.close();
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public static List<double[]> getDoubles() {
FileInputStream fis = null;
ObjectInputStream ois = null;
List<double[]> newList = new ArrayList<double[]>>();
try {
fis = new FileInputStream("user_data.txt");
ois = new ObjectInputStream(fis);
newList = (ArrayList<double[]>) ois.readObject();
} catch (Exception ex) {
try {
fis.close();
ois.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return newList;
}
最佳答案
new ArrayList<double[]>()
创建一个双精度数组列表,而不是一个双精度列表。该列表本身是一个数组(长度可变),因此只需使用:
List<Double> newList = new ArrayList<Double>();