Java 读取和写入对象的LinkedList
我是Java的初学者。我遇到的问题之一是在不同的类中使用arraylist。 MainWindow类将文件读取到arraylistJava 读取和写入对象的LinkedList,java,arraylist,Java,Arraylist,我是Java的初学者。我遇到的问题之一是在不同的类中使用arraylist。 MainWindow类将文件读取到arraylist public class MainWindow extends javax.swing.JFrame { ArrayList <Product> pl; List<Product> list = new ArrayList<>(); boolean test = false; ObjectOutputStream oos;
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);
}
}
public类主窗口扩展了javax.swing.JFrame{
ArrayList pl;
列表=新的ArrayList();
布尔检验=假;
对象输出流oos;
目的输入流ois;
私有字符串file=“C://temp//Data.dat”;
字符串编号=”;
公共主窗口(){
初始化组件();
pl=新的ArrayList();
试一试{
ois=新对象输入流(新文件输入流(文件));
做{
list=(ArrayList)ois.readObject();
对于(int i=0;i
我希望使用相同的Arraylist pl将新产品添加到列表中,而不覆盖Arraylist。
如果不在每个类中加载相同的文件,我不知道如何才能做到这一点。我需要ArryList和文件中的loade内容。你应该为每个
类导入它。但是,如果你经常使用ArrayList
,并且只使用ArrayList
,那么你可以创建一个类,如:
public class MySharedArrayList {
public static ArrayList<> pl;
}
公共类MySharedArrayList{
公共静态数组列表pl;
}
然后你可以到处导入这个小文件,但我相信我们考虑得太多了。不要过早优化。这个微观问题可能永远不会出现,因此处理它可能是浪费时间