Java 写入文件会给我NullPointerException

Java 写入文件会给我NullPointerException,java,arrays,sorting,Java,Arrays,Sorting,我正在编写一段代码,将整数数组写入文件。然而,它一直给我一个NullPointerException。我认为这是我的两种方法中的一种,我知道它就在那里的某个地方,但我无法发现它。这是密码 public static void WriteToFile (int[] n)throws IOException{ try{ BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\sortfile2.txt"));

我正在编写一段代码,将整数数组写入文件。然而,它一直给我一个NullPointerException。我认为这是我的两种方法中的一种,我知道它就在那里的某个地方,但我无法发现它。这是密码

public static void WriteToFile (int[] n)throws IOException{
    try{
        BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\sortfile2.txt"));
        for(int i=0;i<=25;i++){
            bw.write(sortArray(n)+" ");
        }
        bw.flush();
        bw.close();
    }
    catch(IOException e){
        System.out.println("Could not write to file");
    }
}
publicstaticvoidwritetofile(int[]n)引发IOException{
试一试{
BufferedWriter bw=新的BufferedWriter(新文件写入程序(“C:\\sortfile2.txt”);

对于(inti=0;i请尝试此代码,并根据您的代码进行编辑(此代码适合我)

publicstaticvoidwrite(字符串文件名,int[]x)引发IOException{
BufferedWriter outputWriter=null;
outputWriter=new BufferedWriter(new FileWriter(filename));
对于(int i=0;i
您的自定义排序不起作用,将导致问题。尤其是

for(int i=0;i<a.length;i++)
关于max有一些相当令人担忧的索引边界问题,而max++似乎毫无意义


在不进行排序的情况下进行尝试,以查明问题所在。

能否共享堆栈跟踪,以便知道获取空指针的行号异常跟踪应给出错误发生的确切行,因此您无需猜测。您能发现吗?要获取堆栈跟踪,您需要替换
System.out.println(“无法写入文件”);
使用
e.printStackTrace();
查看代码,我想在sortArray中数组也是空的,您应该使用
声明方法抛出IOException
,说它可以抛出异常,或者
捕获(IOException e){…}
并处理错误,但不能同时处理这两个错误。为什么不简单地执行
BufferedWriter outputWriter=new BufferedWriter(new FileWriter(filename));
?我没有遵循您的
确保您的缓冲写入程序声明为null
。。。
 public static void write (String filename, int[]x) throws IOException{
      BufferedWriter outputWriter = null;
      outputWriter = new BufferedWriter(new FileWriter(filename));
      for (int i = 0; i < x.length; i++) {
        // Maybe:
        outputWriter.write(x[i]+"");
        // Or:
        outputWriter.write(Integer.toString(x[i]);
        outputWriter.newLine();
      }
      outputWriter.flush();  
      outputWriter.close();  
    }
for(int i=0;i<a.length;i++)
    int max=IndexOfMaxInRange(a,i,a.length-1);
    sort=SwapElement(a,max,max++);