Java 写入文件会给我NullPointerException
我正在编写一段代码,将整数数组写入文件。然而,它一直给我一个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"));
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++);