2010-12-16 12 views
1

Ich habe zwei verbundene Vektoren von Arrays von Zahlen. Wie schreibe/lese ich am schnellsten? Sollte ich Standard (De) Serialisierung oder eine andere Technik verwenden? XML ist natürlich zu wenig effizient.Was ist der schnellste Weg, große Zahlen in Java zu schreiben/lesen?

+2

unefficient? Das ist unmöglich! :-) – paxdiablo

+0

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

+0

XML ist ineffizient? Warum, damals, mussten wir Zahlen von Lochkarten lesen. Und uns hat es gefallen. –

Antwort

1

Schreiben Sie sie als Binärdatei, wobei die ersten 4 Bytes eine Zählung von wie vielen sind und alle 4 Bytes danach eine Zahl ist.

UPDATE: Codebeispiel

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

Ich denke, Sie brauchen –

+0

Sie können keinen Vektor haben , Sie können eine Liste haben

+2

Dies wird * viel * schneller, wenn Sie einen BufferedOutputStream verwenden. –

Verwandte Themen