簡體   English   中英

如何在文件中按名稱搜索?

[英]How to search by name in a file?

如何在包含名稱和年齡的對象的文件中按名稱查找?

我想從文件中按名稱搜索它。 我完成了將對象寫入文件並從文件中讀取的工作。

Demo object1 = new Demo(100,"saran");
Demo object2 = new Demo(20 ,"nivas");

ArrayList<Demo> list=new ArrayList<>();
try {
    FileOutputStream file=new FileOutputStream("C:\\Users\\SARANNIVAS\\Documents\\file\\obj");
    ObjectOutputStream out=new ObjectOutputStream(file);
    list.add(object1);
    list.add(object2);
    out.writeObject(list);

    out.close();
    file.close();

    System.out.println("object has been serialized");

} catch(IOException ex)
{
     ex.printStackTrace();
    System.out.println("exception is caught");
}


try {
    FileInputStream file=new FileInputStream("C:\\Users\\SARANNIVAS\\Documents\\file\\obj");
    ObjectInputStream in=new ObjectInputStream(file);
    ArrayList<Demo> list1=new ArrayList<>();
    list1=(ArrayList<Demo>)in.readObject();

    for(Demo d:list1) {
        System.out.println(d.a);
        System.out.println(d.b);
    }

} catch(IOException ex) { 
    System.out.println("IOException is caught"); 
}

我假設您嘗試搜索從文件中讀回的數組列表。 這樣對嗎? 您可以使用以下內容搜索列表...

public class DemoDemo {
    public static void main(String[] args) {
        Demo object1 = new Demo(100,"saran");
        Demo object2 = new Demo(20 ,"nivas");

        List<Demo> list=new ArrayList<>();
        list.add(object1);
        list.add(object2);

        list
          .stream()
             .filter(d1 -> d1.name.equalsIgnoreCase("saran"))
                .forEach(d2 -> System.out.println(d2.name + " of age " + d2.age));
    }
}

class Demo {
    public final int age;
    public final String name;

    public Demo (int age, String name) {
        this.age = age;
        this.name = name;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM