gpt4 book ai didi

java - 为什么在另一个类中使用 PrintWriter 时会出现 PrintWriter 空指针异常

转载 作者:行者123 更新时间:2023-12-01 18:27:43 27 4
gpt4 key购买 nike

我已经使用 Java 执行任务和支持工具有一段时间了,但我从未弄清楚如何在一个类中使用 PrintWriter ,然后我可以从另一个类中使用它,例如,我我有几个要解析的 XML 文件,然后从单个输入源(.xls 报告)输出到表,并且我有几个针对不同 XML 和子节点的输出文件。因此,我创建了此类来创建一个 PrintWriter 并报告输出文件是否已存在:

public class PrintAdmin 
{
public PrintWriter pout;
public int PrintFromElement = 0;

public PrintAdmin(String Dirname) throws IOException
{
PrintWriter pout = new PrintWriter(new BufferedWriter(new FileWriter((Dirname))));
int PrintFromElement = 0;
File f1 = new File("FirstNode.CSV");
if(f1.exists())
{ PrintFromElement = 1; }
else
{ PrintFromElement = 0; }
}
public void poutclose()
{
this.pout.close();
}

}

这是从以下位置调用的:

public class AuditParser 
{
public static File Auditor;

public static void main(String[] args) throws IOException
{ PrintAdmin xmltype1out = new PrintAdmin(xmltype1);
...
for (int xml1 = PrintAdmin.PrintFromElement: xml1 < xml1parsed.header.size();xml1++)
{
...dostuff...
}

这种模式会重复 4 或 5 次。

我的问题是,虽然我在 AuditParser 中使用 PrintAdmin 进行了良好的编译,但在运行时我得到了 NullPointerException

我想通过这种方式创建一个简单的类,该类创建一个 PrintWriter ,它指示是否打印头记录,具体取决于文件是否已经存在。它在这里很有用,我相信它在其他地方也会对我有用......

最佳答案

您正在构造函数中定义一个局部变量,该变量会隐藏该字段,但该变量从未被分配。将 PrintWriter 标记放入构造函数中。

关于java - 为什么在另一个类中使用 PrintWriter 时会出现 PrintWriter 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25470918/

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