2010-11-15 23 views
2

Bonjour J'ai créé une classe nommée 'Humain' dans laquelle chaque objet de cette classe a un nom et un type qui peut être étudiant ou instructeur. J'ai créé une autre classe principale qui crée l'objet de Human et assigne le type et le nom aux objets et ajoute ces objets dans une liste liée. Maintenant, je veux écrire ce linkedList dans un fichier, mais je ne sais pas comment. Je dois écrire les deux objets et leur type dans cette liste liée. J'ai créé après comme classe principale mais j'ai un problème dans les parties du fichier d'écriture. voudriez-vous me guider?aide pour écrire des fichiers dans java

public class Testing { 

    public static LinkedList<Human> link =new LinkedList<Human>(); 
    static FileOutputStream fop; 
    public static void main(String args[]) 
    { 
     File f=new File("textfile1.txt"); 
     try { 
      fop=new FileOutputStream(f); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


     Human hm = new Human(); 
     Human hum = new Human(); 
     hm.setName("Anna"); 
     hm.setType("Student"); 
     hum.setName("Elvis"); 
     hum.setType("Instructor"); 
     link.add(hm); 
     link.add(hum); 
     for (Human h : link) { 
      fop.write(h.getType()); 
      fop.write(h); 
     } 


    } 
} 
+0

cela dépend de ce que vous voulez écrire dans le fichier. Voulez-vous les valeurs, l'objet sérialisé, une représentation xml? – Codemwnci

+0

Je veux écrire les objets –

+0

sous une forme lisible. ou sous forme binaire? – Codemwnci

Répondre

2

Regardez java.io.PrintStream

PrintStream p = new PrintStream(fop); 
for (Human h : link) { 
    p.println(h.getType()); 
    p.println(h); 
} 
p.close(); 

Si vous avez modifié une méthode toString pour l'homme.

1

Une solution facile et travailler pour votre problème serait de créer un simple fichier « CSV », ce serait une représentation lisible de vos Human objets et ressembler à:

Anna;Student 
Elvis;Instructor 

Vous pouvez y parvenir avec faire:

for (Human h : link) { 
    String line = h.toString() + ";" + h.getType() + "\n"; 
    fop.write(line.getBytes()); 
} 
+0

est-ce un bon moyen si je veux ajouter une autre méthode dans la classe Test pour lire le 'textfile' _qui j'ai créé avec le code ci-dessus dans une liste linkedList? –