используя Object input \ output Streams с файлами и списком массивов - PullRequest
0 голосов
/ 29 мая 2010

Я студент IT, и пришло время закончить мой последний проект на Java. Я столкнулся со многими проблемами, но эту проблему я не смог решить, и я очень расстроен.

Мой код такой:

в классе администратора:

 public ArrayList cos_info = new ArrayList();
 public ArrayList cas_info = new ArrayList();
 public int cos_count = 0 ;
 public int cas_count = 0 ;


void coustmer_acount() throws FileNotFoundException, IOException{
String add=null;
 do{
    person p = new person() ;
    cos_info.add(cos_count, p);
    cos_count ++ ;
     add =JOptionPane.showInputDialog("Do you want to add more  coustmer..\n'y'foryes ..\n 'n'for No ..");
     }

   while(add.charAt(0) == 'Y'||add.charAt(0)=='y');
   writenew_cos();
  // add_acounts();
   }

    void writenew_cos() throws IOException{
    ObjectOutputStream aa = new ObjectOutputStream(new FileOutputStream("coustmer.txt"));
    aa.writeObject(cos_info);
    JOptionPane.showMessageDialog(null,"Added to file done sucessfuly..");
    aa.close();
     }

в классе Coustmer:

void read_cos() throws IOException, ClassNotFoundException{
 person p1= null ;
 int array_count = 0;
 ObjectInputStream d = new ObjectInputStream(new FileInputStream("coustmer.txt"));
 JOptionPane.showMessageDialog(null,d.available() );
        for(int i = 0;d.available() == 0;i++){
        a.add(array_count,(ArrayList) d.readObject());
         array_count++;
        JOptionPane.showMessageDialog(null,"Haaaaai :D" );
        JOptionPane.showMessageDialog(null,array_count );
       }
       d.close();
       JOptionPane.showMessageDialog(null,array_count +"1111" );
             for(int i = 0 ; i<array_count&& found!= true ; i++){
            count ++ ;
            p1 =(person)a.get(i);
            user=p1.user;
            pass = p1.pass;
           // cos_checkpass();
                                    }
                        }

Он просто печатает JOptionPane.showMessageDialog(null,d.available() ); и есть исключение. Здесь a.add(array_count,(ArrayList) d.readObject()); p.s: объект person из моего собственного класса, и он сериализуем.

Ответы [ 2 ]

0 голосов
/ 30 мая 2010

Я бы предложил использовать метод try / catch для вызова метода, который выдает исключение в catch

catch(Exception ex){
ex.printStackTrace();
}

Чтобы выяснить, откуда именно возникла ошибка, она может дать вам больше информации о том, что вы получаете.

Также я бы рекомендовал использовать

JOptionPane.showMessageDialog(null, "Add more Customers?", "Continue?",JOptionPane.ERROR_MESSAGE);

или что-то в этом роде, вместо получения символа того, что набрал пользователь, он создает более удобный интерфейс.

0 голосов
/ 29 мая 2010

Уверен, что любой класс, который вы пишете, не должен выбрасывать ClassNotFoundException

...