Я новичок в Java. Одна из проблем, которые у меня есть, - это использовать arraylist в разных классах. класс MainWindow прочитать файл в ArrayListчитать и писать LinkedList of Bject
public class MainWindow extends javax.swing.JFrame {
ArrayList <Product> pl;
List<Product> list = new ArrayList<>();
boolean test = false;
ObjectOutputStream oos;
ObjectInputStream ois;
private String file ="C://temp//Data.dat";
String number ="";
public MainWindow() {
initComponents();
pl = new ArrayList<>();
try {
ois = new ObjectInputStream(new FileInputStream(file));
do{
list = (ArrayList<Product>) ois.readObject();
for(int i =0; i < list.size(); i++){
pl.add(list.get(i));
}
for(Product px : pl){
number = px.getpNumber();
System.out.println(px);
System.out.println(number);
}
System.out.println(pl);
//System.out.println(table);
}
while(test = false);
} catch (FileNotFoundException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("file not founf");
}
catch (EOFException ex){
System.out.println("end of file");
ex.printStackTrace();
test = true;
}
catch (IOException | ClassNotFoundException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("class not found");
}
finally{
try {
ois.close();
} catch (IOException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public ArrayList<Product> getProduct(){
return pl;
private void addPanelActionPerformed(java.awt.event.ActionEvent evt) {
addPanel ap;
try {
ap = new addPanel();
ap.setVisible(true);
} catch (ClassNotFoundException ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
Я хочу использовать тот же ArrayList пл, чтобы добавить новый продукт в список без overwritting в ArrayList. Я не знаю, как это сделать, не загружая один и тот же файл в каждом классе. Мне нужен ArryList с содержимым loade из файла