gpt4 book ai didi

Java创建一个类来打印ArrayList到文件

转载 作者:行者123 更新时间:2023-11-29 07:10:52 26 4
gpt4 key购买 nike

这是我的代码。

这是我的 PrintToFile 类

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

public class PrintToFile{
File f;
FileWriter fw;
PrintWriter pw;

public void PrintToFile()throws Exception{//remove void from constructor
File f = new File ("Output.txt");//dont reinitialize
FileWriter fw = new FileWriter(f, true);//dont reinitialize
PrintWriter pw = new PrintWriter(fw);//dont reinitialize
}

public void printExp(ArrayList<Expense> expList){
for(int i = 0; i < expList.size(); i++){
pw.println("---------------------------------------");//exception here
pw.println(expList.get(i));
}
pw.close();
}
}

在我的主类中,这是我打印 ArrayList 的调用

    PrintToFile printer = new PrintToFile();
printer.printExp(expList);

我已经将 expList 定义为对象的 ArrayList

我得到的异常是一个

Exception in thread "main" java.lang.NullPointerException

发生在有标记的地方。我的问题是导致此异常的原因是什么?谢谢

最佳答案

您不是在创建 pw 的对象,它是类字段,而是在创建 pw 的对象,它是方法 PrintToFile() 的本地对象.所以默认情况下 PrintToFile.pw 为 null,您会得到 NPE

改变你的方法以在构造函数中跟随或初始化pwffw(推荐):

public void PrintToFile() throws Exception {
f = new File ("Output.txt");
fw = new FileWriter(f, true);
pw = new PrintWriter(fw);
}

关于Java创建一个类来打印ArrayList到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065282/

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