在 java 中将一个 bson 文件的某些部分写入另一个 bson 文件
Write some part of a bson file into another bson file in java
我有一个 bson 文件,(a.bson)。我想读取这个文件并提取其中的一部分,然后将这些部分保存到另一个 BSON 文件中 (b.bson)。
目前,我可以使用 org.bson.BSONEncoder 读取我的源文件 (a.bson) 并提取其中我最喜欢的部分(例如,源 fila 的每一行的 key1 和 key2)。现在我想将这些数据保存在另一个 bson 文件中(b.bson)。事实上,我需要将这些数据保存在一个 bson 文件中,因为这个文件有一个结构,我可以很容易地检查行是否包含空间值。我写这段代码
import org.bson.BSONEncoder;
public static void createmyFile(File sourceFile) throws FileNotFoundException, IOException {
InputStream inputStream = new BufferedInputStream(new FileInputStream(sourceFile));
BSONDecoder decoder = new BasicBSONDecoder();
try {
while (inputStream.available() > 0) {
BSONObject bsonSingleRow = decoder.readObject(inputStream);
// ---------------------------------------------------------------------
// Write bsonSingleRow.get(key1) & bsonSingleRow.get(key2) into new file
// ---------------------------------------------------------------------
}
} catch (IOException e) {
...
}
}
请帮我完成上面的代码。
例如,如果您想要来自源文件的 2%(select 随机)数据
File file = new File("a.bson");
String path = "b.bson";
BasicBSONEncoder encoder = new BasicBSONEncoder();
InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
BSONDecoder decoder = new BasicBSONDecoder();
try {
while (inputStream.available() > 0) {
BSONObject bsonSingleRow = decoder.readObject(inputStream);
c = bsonSingleRow.get("yourKey").toString();
if (Math.random()> .98))
Files.write(Paths.get(path), encoder.encode(bsonSingleRow),StandardOpenOption.CREATE, StandardOpenOption.APPEND);
}
}
} catch (IOException e) {
...
}
我有一个 bson 文件,(a.bson)。我想读取这个文件并提取其中的一部分,然后将这些部分保存到另一个 BSON 文件中 (b.bson)。 目前,我可以使用 org.bson.BSONEncoder 读取我的源文件 (a.bson) 并提取其中我最喜欢的部分(例如,源 fila 的每一行的 key1 和 key2)。现在我想将这些数据保存在另一个 bson 文件中(b.bson)。事实上,我需要将这些数据保存在一个 bson 文件中,因为这个文件有一个结构,我可以很容易地检查行是否包含空间值。我写这段代码
import org.bson.BSONEncoder;
public static void createmyFile(File sourceFile) throws FileNotFoundException, IOException {
InputStream inputStream = new BufferedInputStream(new FileInputStream(sourceFile));
BSONDecoder decoder = new BasicBSONDecoder();
try {
while (inputStream.available() > 0) {
BSONObject bsonSingleRow = decoder.readObject(inputStream);
// ---------------------------------------------------------------------
// Write bsonSingleRow.get(key1) & bsonSingleRow.get(key2) into new file
// ---------------------------------------------------------------------
}
} catch (IOException e) {
...
}
}
请帮我完成上面的代码。
例如,如果您想要来自源文件的 2%(select 随机)数据
File file = new File("a.bson");
String path = "b.bson";
BasicBSONEncoder encoder = new BasicBSONEncoder();
InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
BSONDecoder decoder = new BasicBSONDecoder();
try {
while (inputStream.available() > 0) {
BSONObject bsonSingleRow = decoder.readObject(inputStream);
c = bsonSingleRow.get("yourKey").toString();
if (Math.random()> .98))
Files.write(Paths.get(path), encoder.encode(bsonSingleRow),StandardOpenOption.CREATE, StandardOpenOption.APPEND);
}
}
} catch (IOException e) {
...
}