gpt4 book ai didi

java - 将 java vector 结果写入文件

转载 作者:行者123 更新时间:2023-12-01 14:37:03 25 4
gpt4 key购买 nike

该程序应该使用 vector 计算素数并将结果写入文件。当我运行它时,它会计算 2-64 的质数并将其打印到屏幕上。但是,当我检查它正在创建的文本文件时,它不会将结果写入文件中,而是将一些其他数据写入文件中。我在这里没有做什么?

import java.util.*;
import java.io.*;

public class PrimeByVector
{
public static void main(String[] args)
{
try
{
ObjectOutputStream OutputS = new ObjectOutputStream(new FileOutputStream("PrimeNumbers.txt"));
DataOutputStream DataOS = new DataOutputStream(OutputS);
final int NUMBER_PER_LINE = 10;
int count = 0;
// java.util.Vector vector = new java.util.Vector();
Vector v = new Vector();
System.out.println("The primes before 64 are: \n");

for (int n = 2; n < 64; n++)
{
boolean isPrime = true;
for (int i = 0; i < v.size(); i++)
{
int primeNumber =
((Integer)(v.elementAt(i))).intValue();
if (primeNumber > Math.sqrt(n)) break;

if (n % primeNumber == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
count ++;
v.addElement(new Integer(n));
if (count % NUMBER_PER_LINE == 0)
{
System.out.println(n);
}
else
System.out.print(n + " ");
}
DataOS.write(n);
}
DataOS.close();

}
catch(IOException e)
{
System.out.println("Error!!!!!");
}
}
}

最佳答案

您正在使用通常用于写出二进制数据的DataOutputSteam。如果您希望将数据以计划文本形式写入文件,请像这样实例化您的输出:

PrintWriter out = new PrintWriter(new FileWriter("PrimeNumbers.txt"));

然后,当需要输出时,执行以下操作:

out.println(n);
out.flush();

然后像这样完成后关闭它:

out.close();

这将每行打印一个;不确定这是否正是您想要的。

此外,我在您的代码中注意到,您在检查数字是否为素数的 if 语句之外写入 DataOS,这意味着您将把所有数字写入文件,而不仅仅是素数数字。

如果您需要在文件中遵循与 System.out 相同的约定,请将代码更改为如下所示:

if (count % NUMBER_PER_LINE == 0)
{
System.out.println(n);
out.println(n);
}
else{
System.out.print(n + " ");
out.print(n + " ");
}
out.flush();

关于java - 将 java vector 结果写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16390309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com