当前位置: 首页 > 知识库问答 >
问题:

如何编写和检索对象arraylist到文件?

西门嘉澍
2023-03-14
 public static void LOLadd(String ab, String cd, int ef) throws IOException {
     MyShelf newS = new MyShelf();
     newS.Fbooks = ab;
     newS.Bbooks = cd;
     newS.Cbooks = ef;
     InfoList.add(newS);

         FileWriter fw;
                 fw = new FileWriter("UserInfo.out.txt");
             PrintWriter outt = new PrintWriter(eh);
                 for (int i = 0; i <InfoList.size(); i++)
                 {
                     String ax = InfoList.get(i).Fbooks;
                     String ay = InfoList.get(i).Bbooks;
                     int az = InfoList.get(i).Cbooks;
                     output.print(ax + " " + ay + " " + az);  //Output all the words to file // on the same line
                     output.println(""); //Make space
                 }
                 fw.close();
                 output.close();
}
public Object findUsername(String a) throws FileNotFoundException, IOException,     ClassNotFoundException  
{    
 ObjectInputStream sc = new ObjectInputStream(new FileInputStream("myShelf.out.txt"));

    //ArrayList<Object> List = new ArrayList<Object>();
    InfoList = null;
    Object  obj = (Object) sc.readObject();

    InfoList.add((UserInfo) obj);
    sc.close();

     for (int i=0; i <InfoList.size(); i++) {
          if (InfoList.get(i).user.equals(a)){
               return "something" + InfoList.get(i);
      }
   }
     return "doesn't exist"; 
 }

public static String lbooksMatching(String b)    {

    //Retrieve data from file
    //...

    for (int i=0; i<myShelf.size(); i++)       {
        if (myShelf.get(i).user.equals (b))   
        {
            return b;
        }
        else 
        {
            return "dfbgregd"; 
        }
   }
    return "dfgdfge"; 
}

public static String matching(String qp)    {
    for (int i=0; i<myShelf.size(); i++)       {
        if (myShelf.get(i).pass.equals (qp))   
        {
            return c;
        }
        else 
        {
            return "Begegne"; 
        }
   }
    return "Bdfge"; 
}

谢谢!!!

共有1个答案

常小白
2023-03-14

您似乎希望序列化一个对象,并将序列化的形式持久化到某种存储(在本例中是文件)。

这里有2个重要的备注:

序列化

    null
    null

持久性

由于各种原因(没有版本控制/并发问题/.....),将序列化对象写入文件并不总是一个好主意。

更好的方法是使用数据库。如果是一个层次化数据库,那么看看Hibernate或JPA,它们可以用很少的代码持久化您的对象。如果是像MongoDB这样的文档数据库,则可以持久化JSON序列化表示。

 类似资料:
  • 我有一个web应用程序,它使用JSF中的数据表和Primefaces特性,以便它可以执行一些更动态的功能。在dataTable中,我有包含可编辑数据的行。我的最终目标是让用户能够编辑数据,单击save按钮,update语句将被执行以替换数据库中存在的内容。问题是,此时我不知道如何检测ArrayList中对象的更改。 我已经杀一儆百,看看有没有人能解决我的困境。听我说,我有一个代码制作了一个data

  • 问题内容: 我的arraylist包含String数组对象。我如何获得所有价值?我的代码如下 如果我尝试像上面给出的那样进行检索, 怎么做? 问题答案: 您还必须遍历字符串数组。

  • 对于我当前的项目,我必须搜索ArrayList of ZipCode对象,以便找到距离用户输入的int zip最远的ZipCode。 下面是编写我遇到问题的方法的说明:public ZipCode findfurtwest(int-pZip)-查找距离提供的邮政编码最远的ZipCode。如果未找到邮政编码,则返回null。例如,距离邮政编码75234最远的是ADAK,AK 99546。 在我的代码

  • 问题内容: 使用示例: 假设我有一个课堂电话。我还有另一个上课电话。 类的ArrayList为。 要遍历.. 的Arraylist而不是这样做: 我们可以像这样简单地遍历ArrayList : 现在,我要迭代并打印出所有第3个对象: 现在我的问题是: 与使用常规的for循环不同,我如何使用ArrayList迭代打印出枪支对象列表? 问题答案: 您要遵循与以前相同的模式: 在这种情况下,它将是:

  • 我正在编写一个非常简单的程序GUI程序来模拟手机。“手机”有四个主要按钮:电话、通讯录、信息和应用程序。我编写了所有的GUI,在使用Contact类时遇到了一个问题,它是整个程序的主干! Contact类非常简单,它有两个String类型的实例变量,分别是“name”和“number”。我想构建一个Contact类型的ArrayList,允许添加联系人,然后创建方法来附加到序列化文件并从中读取。

  • 我正在使用这段代码,但当我从首选项获得位置时,位置返回如下所示... 位置[mprovider=存储,Mtime=0,mlatitude=30.0,montilunde=76.0,mhasaltitude=false,maltitude=0.0,mhasspeed=false,mspeed=0.0,mhasbearing=false,mbearing=0.0,mhasaccuracy=false,