Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java编写/读取大型数字表的最快方法是什么?_Java - Fatal编程技术网

用Java编写/读取大型数字表的最快方法是什么?

用Java编写/读取大型数字表的最快方法是什么?,java,Java,我有两个连接的数字数组向量。写/读它们的最快方式是什么? 我应该使用默认(反)序列化还是其他技术?XML当然太不有效了。将它们作为二进制文件写入,其中前4个字节是多少的计数,之后每4个字节是一个数字 更新:代码示例 import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Vector; /** * Write the numbe

我有两个连接的数字数组向量。写/读它们的最快方式是什么?
我应该使用默认(反)序列化还是其他技术?XML当然太不有效了。

将它们作为二进制文件写入,其中前4个字节是多少的计数,之后每4个字节是一个数字

更新:代码示例

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);
  }
}
import java.io.DataOutputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.util.Vector;
/**
*用二进制写数字。
*/
公共类写二进制{
公共静态void main(字符串[]argv)引发IOException{
向量数=getVectorOfNumbers();
int size=numbers.size();
字符串FILENAME=“binary.dat”;
DataOutputStream os=新DataOutputStream(新文件OutputStream(
文件名);
操作系统写入(大小);
用于(整数n:数字){
os.writeInt(n);
}
os.close();
System.out.println(“将“+size+”数字写入文件“+FILENAME”);
}
}

将它们作为二进制文件写入,其中前4个字节是多少的计数,之后每4个字节是一个数字

更新:代码示例

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);
  }
}
import java.io.DataOutputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.util.Vector;
/**
*用二进制写数字。
*/
公共类写二进制{
公共静态void main(字符串[]argv)引发IOException{
向量数=getVectorOfNumbers();
int size=numbers.size();
字符串FILENAME=“binary.dat”;
DataOutputStream os=新DataOutputStream(新文件OutputStream(
文件名);
操作系统写入(大小);
用于(整数n:数字){
os.writeInt(n);
}
os.close();
System.out.println(“将“+size+”数字写入文件“+FILENAME”);
}
}

效率低下?这是不可能的!:-)谢谢你,拉尔夫·威格姆。XML效率低下?为什么,在那一天,我们必须从穿孔卡片上读出数字。我们喜欢它,没有效率?这是不可能的!:-)谢谢你,拉尔夫·威格姆。XML效率低下?为什么,在那一天,我们必须从穿孔卡片上读出数字。我们喜欢它。你不能有一个向量,你可以有一个列表。如果你使用BufferedOutputStream,速度会快得多。你不能有一个向量,你可以有一个列表。如果你使用BufferedOutputStream,速度会快得多。