for(int i = 0; i<150000000; i++)
{
square = square.add(BigInteger.valueOf(number[i]));
}
我运行时的编译器给出了错误:线程“main”中的异常java.lang.NullPointerException 在numberge.Numberge.main(Numberge.java:44) Java结果:1
我也试过让for循环迭代的次数少一些,但没有用。任何想法?
程序给我的整个输出是: 跑: 完成生成/现在写入文件 现蕾 1.5 线程“main”java.lang.NullPointerException中的异常 在numberge.Numberge.main(Numberge.java:43) Java结果:1 建立成功(总时间:9秒)
整个代码是
import java.util.Random;
import java.io.*;
import java.math.BigInteger;
public class Numbersqu {
static byte[] number = new byte[150000000];
static Random generator = new Random(System.currentTimeMillis());
static BigInteger square = null;
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException
{
for(int i = 0; i<150000000; i++)
{
number[i] = (byte) Math.abs(generator.nextInt(9));
}
System.out.println("done generating/now writing to file");
File file = new File("number.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
for(int i = 0; i<150000000; i++)
{
bw.write(Integer.toString(number[i]));
}
bw.close();
System.out.println("generating number to square");
System.out.println(Integer.toString(number.length));
for(int i = 0; i<150000000; i++)
{
square = square.add(BigInteger.valueOf(number[i]));
}
System.out.println("Writing square to file");
File file2 = new File("square.txt");
if (!file2.exists())
{
file2.createNewFile();
}
FileWriter fw2 = new FileWriter(file2.getAbsoluteFile());
BufferedWriter bw2 = new BufferedWriter(fw2);
bw2.write(square.toString());
bw2.close();
}
}
这是我已经得到的,一旦我可以存储数字,那么我将对它进行调整。
答案 0 :(得分:1)
所以在这里。你的变量square为null。
static BigInteger square = null;
在使用之前将其初始化为某个值:
for(int i = 0; i<150000000; i++)
{
square = square.add(BigInteger.valueOf(number[i]));
}
答案 1 :(得分:0)
我可以看到两个可能的问题,但是使用这段代码片段,没有提供足够的信息来真正了解这些项目中的任何一个是真正的问题。
也许广场不是初学者。如果是这样,
square = square.add(...
将在square.add(...)
调用时取消引用空指针,从而导致空指针异常。
修复此类项目 square = new Square(); 应该事先打电话。
number
未初始化。修复它与修复square
相同。
number[i]
缺少价值。在处理对象数组时,这种情况经常发生。