gpt4 book ai didi

Java - 解释对象文件

转载 作者:行者123 更新时间:2023-12-01 18:33:19 25 4
gpt4 key购买 nike

我需要创建一个将写入本地对象文件的 ArrayList。但这是我第一次在java中使用File。那么..任何人都可以简单地解释一下我该怎么做吗?

我只需要将这个ArrayList插入到文件中(我认为是这样写的),读取文件并使用之前存储在同一文件中的ArrayList。

我尝试实现它,结果是这样的:

    FileInputStream fileIn = new FileInputStream("contiCorrenti");
ObjectInputStream fileObjIn = new ObjectInputStream(fileIn);

ArrayList<contoCorrente> contiCorrentiArray = (ArrayList<contoCorrente>) fileObjIn.readObject();

fileObjIn.close();
fileIn.close();

contoCorrente c1 = new contoCorrente("IDNALFO", 14, 1);
contoCorrente c2 = new contoCorrente("IDNALFO", 14, 3);

contiCorrentiArray.add(c1);



FileOutputStream fileOut = new FileOutputStream("contiCorrenti");
ObjectOutputStream fileObj = new ObjectOutputStream(fileOut);

fileObj.writeObject(contiCorrentiArray);
fileObj.close();
fileOut.close();

可能一切都是错误的,所以请您理解。

最佳答案

您可能遇到文件读取错误。下面应该可以工作。我创建了一个虚拟的“contiCorrenti”类进行测试。请注意,这是非常基本(且成本高昂)的序列化。您可能应该寻找更好的版本,例如 kryo 或 Fasterxml。

package io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;

public class ObjectWrite {

static class contoCorrente implements Serializable {

public contoCorrente(String string, int k, int l) {
name = string;
i = k;
j = l;
}

String name;
int i;
int j;
}

public static void main(String[] args) throws Exception {
ArrayList<contoCorrente> contiCorrentiArray = null;
File file = new File("contiCorrenti");
if (file.exists()) {
FileInputStream fileIn = new FileInputStream(file);
ObjectInputStream fileObjIn = new ObjectInputStream(fileIn);

contiCorrentiArray = (ArrayList<contoCorrente>) fileObjIn.readObject();

fileObjIn.close();
fileIn.close();
} else {
contiCorrentiArray = new ArrayList<contoCorrente>();
}

System.out.println("Size of List at start: "+contiCorrentiArray.size());

contoCorrente c1 = new contoCorrente("IDNALFO", 14, 1);
contoCorrente c2 = new contoCorrente("IDNALFO", 14, 3);

contiCorrentiArray.add(c1);

FileOutputStream fileOut = new FileOutputStream(file);
ObjectOutputStream fileObj = new ObjectOutputStream(fileOut);

fileObj.writeObject(contiCorrentiArray);
fileObj.close();
fileOut.close();
}

}

关于Java - 解释对象文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60119702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com