第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在文件中保存和加載列表

在文件中保存和加載列表

滄海一幻覺 2023-03-17 16:07:27
我目前正在準備考試并正在執(zhí)行以下任務:如何將 ArrayList 傳遞給存儲列表數(shù)據(jù)的“保存”方法和將數(shù)據(jù)傳回的另一個“加載”方法?class Person {    private String firstname;    private String lastname;    private String sortname;public Person(String firstname, String lastname) {        this.firstname = firstname;        this.lastname = lastname;        updateSortname();//getter 和 setter..根據(jù)任務我應該使用這些方法:public static List<Person> load(String filename) throws IOException {        return ??;}public static Person load(DataInputStream in) throws IOException {        return ??;}public static void save(String filename, List<Person> list) throws IOException {}public static void save(DataOutputStream out, Person person) throws IOException {}public static List<Person> unserialize(String filename) throws IOException, ClassNotFoundException {        return ??;}public static void serialize(String filename, List<Person> persons) throws IOException {}這是應該產(chǎn)生以下輸出的主要方法:[威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、喬爺爺(JoeGrandpa)][威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、喬爺爺(JoeGrandpa)][威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、喬爺爺(JoeGrandpa)]public class PersonTest {public static void main(String[] args) throws IOException, ClassNotFoundException {    List<Person> persons = new ArrayList<>();    persons.add(new Person("Willy", "Wonka"));    persons.add(new Person("Charlie", "Bucket"));    persons.add(new Person("Grandpa", "Joe"));    System.out.println(persons);    Person.save("persons.sav", persons);    persons = Person.load("persons.sav");    System.out.println(persons);    Person.serialize("persons.ser", persons);    persons = Person.unserialize("persons.ser");    System.out.println(persons);}}它應該看起來像這樣。但我不知道如何為 ArrayLists 做這件事。public static void save(String filename , Graph graph ) throws IOException{try (ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream (new FileOutputStream (filename)))) {out.writeObject (graph);}}
查看完整描述

2 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

由于您需要Person對象的輸出,因此我們需要重寫toString()類Person。


[威利·旺卡(WonkaWilly)、查理·巴克特(BucketCharlie)、喬爺爺(JoeGrandpa)]


class Person {


//Respective Constructor, Getter & Setter methods



/* Returns the string representation of Person Class. 

 * The format of string is firstName lastName (lastNameFirstName)*/


  @Override

  public String toString() { 

    return String.format(firstName + " " + lastName + "("+ lastName + firstName + ")"); 

  } 

}

有許多方法可以將對象寫入文件。這是與PrintWriter


將對象保存到文件


public static void save(String filename, List<Person> list) throws IOException {

 PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));

 for (Person person : list) {

    pw.println(person.toString());

   }

 pw.close();

}

或者使用序列化


// 你可以使用序列化機制。要使用它,您需要執(zhí)行以下操作:


將Person類聲明為實現(xiàn)Serializable:


public class Person implements Serializable {

    ...

  @Override

  public String toString() { 

     return String.format(firstName + " " + lastName + "("+ lastName + firstName + ")"); 

  } 

}

將您的列表寫入文件:


public static void save(String filename, List<Person> list) throws IOException {

 FileOutputStream fos = new FileOutputStream(filename);

 ObjectOutputStream oos = new ObjectOutputStream(fos);

 oos.writeObject(list);

 oos.close();

}

從文件中讀取列表:


public static List<Person> load(String filename) throws IOException {

 FileInputStream fis = new FileInputStream(filename);

 ObjectInputStream ois = new ObjectInputStream(fis);

 List<Person> list = (List<Person>) ois.readObject();

 ois.close();

 return list;

}


查看完整回答
反對 回復 2023-03-17
?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

你可以嘗試這樣的事情:


public static void save(String filename , ArrayList<Person> persons) throws IOException{


    try (ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream (new FileOutputStream (filename)))) {

        for(int i = 0; i < persons.size; i++){

               out.writeObject(persons.get(i));

        }   

}

}


查看完整回答
反對 回復 2023-03-17
  • 2 回答
  • 0 關(guān)注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號