用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,速度会快得多。