所以我试图将信息保存到对象数组列表中,但是一切正常,每当我尝试加载以前保存的数组列表时,我都会收到堆栈溢出错误。
我想我需要某种计数器,但是,我不熟悉Java以及反序列化器的工作方式。我已经在下面附加了我的代码-任何帮助将不胜感激。
这是序列化代码ArrayList<Car> cars = new ArrayList<Car>(); public void addCar { System.out.println("What is the make of the car?"); String newMake = scan.next(); System.out.println("What is the model of the car?"); String newModel = scan.next(); System.out.println("What year was the car produced?"); String newYear = scan.next(); System.out.println("How far has this car traveled?"); String newOdometer = scan.next(); cars.add(new Car(newMake, newModel, newYear, newOdometer)); } public void openFile() { Car cars = new Car(); try { FileInputStream fileIn = new FileInputStream("testSave.plzwork"); ObjectInputStream in = new ObjectInputStream(fileIn); try { cars = (Car)in.readObject(); } catch (ClassNotFoundException ex) { Logger.getLogger(carClass.class.getName()).log(Level.SEVERE, null, ex); } in.close(); fileIn.close(); } catch (IOException i) { i.printStackTrace(); } }
编辑
这是汽车课public void saveFile() { try { FileOutputStream fileOut = new FileOutputStream("testSave.plzwork"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(cars); out.close(); fileOut.close(); System.out.println("Serialized data is saved"); } catch (IOException i) { i.printStackTrace(); } }
编辑2
public Car(String year, String odometer, String make, String model) { this.make = make; this.model = model; this.year = year; this.odometer = odometer; }
这是Netbeans吐出来的错误
线程“主”中的异常java.lang.StackOverflowError在java.base / java.lang.AbstractStringBuilder.setLength(AbstractStringBuilder.java:277)在java.base / java.lang.StringBuffer.setLength(StringBuffer.java:233)在java.base / java.text.DecimalFormat.expandAffix(DecimalFormat.java:2978)在java.base / java.text.DecimalFormat.expandAffixes(DecimalFormat.java:2946)在java.base / java.text.DecimalFormat.applyPattern(DecimalFormat.java:3632)在java.base / java.text.DecimalFormat。(DecimalFormat.java:466)在java.base / sun.util.locale.provider.NumberFormatProviderImpl.getInstance(NumberFormatProviderImpl.java:187)在java.base / sun.util.locale.provider.NumberFormatProviderImpl.getNumberInstance(NumberFormatProviderImpl.java:151)在java.base / java.text.NumberFormat.getInstance(NumberFormat.java:969)在java.base / java.text.NumberFormat.getInstance(NumberFormat.java:953)在java.base / java.text.NumberFormat.getNumberInstance(NumberFormat.java:518)在java.base / java.util.Scanner.useLocale(Scanner.java:1270)在java.base / java.util.Scanner。(Scanner.java:543)在java.base / java.util.Scanner。(Scanner.java:566)在pkg30000969carsarraylist.Car。(Car.java:29)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)在pkg30000969carsarraylist.Car。(Car.java:46)
因此,我试图将信息保存到对象数组列表中,但是一切正常,每当我尝试加载以前保存的数组列表时,我都会收到堆栈溢出错误。我猜我需要一些...