Page 1 of 1

Επιστροφη Vector σε Java....

Posted: Sat Mar 03, 2007 1:25 am
by Spy

Code: Select all

import java.io.*;
import java.util.Vector;
public class readFiles {
	public Object Vector read(String filename) throws IOException {
		
		Vector objects = new Vector();
		File fp = new File(filename);
		ObjectInputStream obstr = null;
		try
			{
				obstr = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fp)));
				
				objects.add(obstr.readObject());

				obstr.close();
			}
			catch ( IOException ioe ) {}
			catch ( ClassNotFoundException cnfe ) {}
	}
	return objects;
}
Μια βοηθεια ρε παιδια! Καπου στην 4η σειρα εχω το λαθος.... ετσι δεν ειναι?

Posted: Sat Mar 03, 2007 1:35 am
by Einherjar

Code: Select all

public Vector read(String filename) throws IOException {

Posted: Sat Mar 03, 2007 1:37 am
by Spy
Eυχαριστω αλλα δεν δουλευει... το δοκιμασα

Posted: Sat Mar 03, 2007 1:53 am
by Einherjar
Προφανώς πετάγεται IOException αλλά επιδή δε το "πιάνεις" δε το βλέπεις. Βάλε κάτι μέσα στις αγκύλες σαν

Code: Select all

ioe.printStackTrace
;)

Posted: Sat Mar 03, 2007 10:35 am
by HdkiLLeR
Einherjar wrote:Προφανώς πετάγεται IOException αλλά επιδή δε το "πιάνεις" δε το βλέπεις. Βάλε κάτι μέσα στις αγκύλες σαν

Code: Select all

ioe.printStackTrace
;)
Ή ένα System.err.println(ioe.getMessage());

για να δεις τι error έχεις!

Posted: Sat Mar 03, 2007 1:27 pm
by Zifnab
Βασικά για να μου κάνει compile πρέπει εκτός από αυτό που είπε ο Einherjar, να μπει το return objects; μέσα στο από πάνω block...Επίσης εφόσον το class είναι public το αρχείο java πρέπει να λέγεται readFiles.java.Τέλος όπως είπαν και τα παιδία πρέπει να βάλεις κάτι στο catch για να δεις τι error/exception πετάγεται... Προτείνω(διορθώστε με αν κάνω λάθος) να βγάλεις το throws IOException διότι με το try catch δεν πρόκειται να πετάξει ποτέ! - Μην ξεχνάμε τι λέει ο compiler (The XException must be caught or declared to be thrown) ;)

δηλαδή:

Code: Select all

import java.io.*;
import java.util.Vector;
public class readFiles {
   public Object Vector read(String filename) {
      Vector objects = new Vector();
      File fp = new File(filename);
      ObjectInputStream obstr = null;
      try
         {
            obstr = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fp)));  
            objects.add(obstr.readObject());
            obstr.close();
         }
         catch ( IOException ioe ) {}
         catch ( ClassNotFoundException cnfe ) {}
    return objects;
   }
}

Posted: Sun Mar 04, 2007 2:44 am
by Spy
Zifnab wrote:Βασικά για να μου κάνει compile πρέπει εκτός από αυτό που είπε ο Einherjar, να μπει το return objects; μέσα στο από πάνω block...Επίσης εφόσον το class είναι public το αρχείο java πρέπει να λέγεται readFiles.java.Τέλος όπως είπαν και τα παιδία πρέπει να βάλεις κάτι στο catch για να δεις τι error/exception πετάγεται... Προτείνω(διορθώστε με αν κάνω λάθος) να βγάλεις το throws IOException διότι με το try catch δεν πρόκειται να πετάξει ποτέ! - Μην ξεχνάμε τι λέει ο compiler (The XException must be caught or declared to be thrown) ;)

δηλαδή:

Code: Select all

import java.io.*;
import java.util.Vector;
public class readFiles {
   public Object Vector read(String filename) {
      Vector objects = new Vector();
      File fp = new File(filename);
      ObjectInputStream obstr = null;
      try
         {
            obstr = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fp)));  
            objects.add(obstr.readObject());
            obstr.close();
         }
         catch ( IOException ioe ) {}
         catch ( ClassNotFoundException cnfe ) {}
    return objects;
   }
}
Εμενα δεν μου κανει compile!!!!!!!!!! Tο δοκιμασα και αυτο!

Posted: Sun Mar 04, 2007 3:39 am
by apo
Λοιπόν πρέπει από τον επιστρεφόμενο τύπο της μεθόδου να βγάλεις το Object. Επίσης σε ένα vector πρέπει να δηλώνεις τον τύπο των αντικειμένων που θα προσθέσεις.Το παρακάτω μεταγλωττίζεται. Τώρα δεν ξέρω τι ακριβώς θέλεις να κάνεις με την υλοποίηση...

Code: Select all

import java.io.*;
import java.util.Vector;
public class readFiles {
   public Vector read(String filename) {
      Vector <Object> objects = new Vector<Object>();
      File fp = new File(filename);
      ObjectInputStream obstr = null;
      try
         {
            obstr = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fp))); 
            objects.add(obstr.readObject());
            obstr.close();
         }
         catch ( IOException ioe ) {System.out.println("dsf");}
         catch ( ClassNotFoundException cnfe ) {System.out.println("Dfs");}
    return objects;
   }
}

Posted: Sun Mar 04, 2007 4:34 am
by Zifnab
Spy wrote:Εμενα δεν μου κανει compile!!!!!!!!!! Tο δοκιμασα και αυτο!
:oops:
Ξέχασα να βγάλω το Object από την παράθεση κώδικα :shock:

sorry :oops:

Posted: Mon Mar 05, 2007 5:58 pm
by Spy
apo wrote:Λοιπόν πρέπει από τον επιστρεφόμενο τύπο της μεθόδου να βγάλεις το Object. Επίσης σε ένα vector πρέπει να δηλώνεις τον τύπο των αντικειμένων που θα προσθέσεις.Το παρακάτω μεταγλωττίζεται. Τώρα δεν ξέρω τι ακριβώς θέλεις να κάνεις με την υλοποίηση...

Code: Select all

import java.io.*;
import java.util.Vector;
public class readFiles {
   public Vector read(String filename) {
      Vector <Object> objects = new Vector<Object>();
      File fp = new File(filename);
      ObjectInputStream obstr = null;
      try
         {
            obstr = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fp))); 
            objects.add(obstr.readObject());
            obstr.close();
         }
         catch ( IOException ioe ) {System.out.println("dsf");}
         catch ( ClassNotFoundException cnfe ) {System.out.println("Dfs");}
    return objects;
   }
}
Σε ευχαριστω παρα πολυ και καταλαβα και την βλακεια μου!!!!!