Java:如何限制将数据写入一行

时间:2016-11-23 18:46:23

标签: java cryptography biginteger

我有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!

有没有办法实现这一目标?或者还有其他解决方法吗?

2 个答案:

答案 0 :(得分:1)

这不会像你尝试的那样可靠地工作(参见我的评论)

如果你想要每行1个BigInteger,你必须用文字

写出来
PrintWriter pw = ...;

for (BigInteger b : values) {
  pw.println(b.toString());
}

答案 1 :(得分:-1)

你在循环中的每个值之后写出一个新行。我认为你会看到一条额外的线,因为你每次都会写一个新线。