我有2 BigIntegers
作为
BigInteger p = new BigInteger(bits, certainty, new SecureRandom());
BigInteger q = new BigInteger(bits, certainty, new SecureRandom());
我将它们转换为字节数组并将其作为
写入文件中private static void write(String file, BigInteger... values) throws IOException {
try (FileOutputStream fileStream = new FileOutputStream(file)) {
for (BigInteger b : values) {
fileStream.write(b.toByteArray());
fileStream.write(new byte[]{(byte) '\n'});
}
}
}
现在,当我打开文件时,结果会产生超过2行。我需要每行写一个,以便以后我可以获取它们。
我将该函数称为:
write("public", p, q);
结果是二进制并改变它写入的行数。所以有时,它是2或3甚至6!
有没有办法实现这一目标?或者还有其他解决方法吗?
答案 0 :(得分:1)
这不会像你尝试的那样可靠地工作(参见我的评论)
如果你想要每行1个BigInteger,你必须用文字
写出来PrintWriter pw = ...;
for (BigInteger b : values) {
pw.println(b.toString());
}
答案 1 :(得分:-1)
你在循环中的每个值之后写出一个新行。我认为你会看到一条额外的线,因为你每次都会写一个新线。