2010-12-16 7 views
1

J'ai deux vecteurs connectés de tableaux de nombres. Quel est le moyen le plus rapide de les écrire/lire? Devrais-je utiliser la sérialisation (de) par défaut ou une autre technique? XML est bien sûr trop inefficace.Quel est le moyen le plus rapide d'écrire/lire une grande table de nombres en Java?

+2

unefficient? C'est antipossible! :-) – paxdiablo

+0

Merci, Ralph Wiggum. http://www.makefive.com/categories/entertainment/television/most-brilliant-simpsons-quotes/me-fail-english-that_s-unpossible---ralph-wiggum – duffymo

+0

XML est inefficace? Pourquoi, à l'époque, nous devions lire des numéros de cartes perforées. Et nous l'avons aimé. –

Répondre

1

Ecrivez-les comme un fichier binaire où les 4 premiers octets est un nombre de combien, et tous les 4 octets après que ce soit un nombre.

MISE À JOUR: exemple de code

import java.io.DataOutputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.Vector; 

/** 
* Write the numbers in binary. 
*/ 
public class WriteBinary { 
    public static void main(String[] argv) throws IOException { 
    Vector<int> numbers = getVectorOfNumbers(); 
    int size = numbers.size(); 

    String FILENAME = "binary.dat"; 
    DataOutputStream os = new DataOutputStream(new FileOutputStream(
     FILENAME)); 
    os.writeInt(size); 
    for(int n : numbers) { 
     os.writeInt(n); 
    } 
    os.close(); 
    System.out.println("Wrote " + size + " numbers to file " + FILENAME); 
    } 
} 
+0

Je pense que vous devez –

+0

Vous ne pouvez pas avoir un vecteur , Vous pouvez avoir une liste

+2

Ce sera * beaucoup * plus rapide si vous utilisez un BufferedOutputStream. –

Questions connexes