您好,正在处理将数据写入文件的小程序。我使用if else语句进行验证,因此我需要在单独的方法中使用PrintWriter和FileWriter类/声明。然后我用主类的构造函数调用此方法。我遇到的问题是当我将Printwriter类移动到它自己的方法时,我无法再通过我的按钮点击aciton l istener来访问它。
CODE:
private void OpenFilePW(){
try{
String inputFileName = "addressBook.txt";
FileWriter fw = new FileWriter(inputFileName, true);
PrintWriter outputFile = new PrintWriter(fw);
}catch(IOException error){
JOptionPane.showConfirmDialog(null, error);
}
}
使用outputFile时。我收到错误,因为它无法找到outputFile。为什么不会'这项工作?
答案 0 :(得分:1)
将PrintWriter定义为主calss中的实例变量
,你不确定你想用它做什么?但要公开让它工作或者如果你在同一个班级工作则不要使用任何修饰符
所以你的代码应该是
public class MyClass
{
public PrintWriter outputFile;
.....
}
然后在到达方法
时实例化实例outputFile = new PrintWriter(fw);
答案 1 :(得分:0)
首先(按照惯例),Java方法名称以小写字母开头。其次,您没有返回PrintWriter
您将其分配给方法局部变量 -
private PrintWriter openFilePW(){
try{
String inputFileName = "addressBook.txt";
FileWriter fw = new FileWriter(inputFileName, true);
return new PrintWriter(fw);
} catch(IOException error) {
JOptionPane.showConfirmDialog(null, error);
}
return null;
}
或者,您可以将PrintWriter
分配给班级变量
private PrintWriter outputFile = null;
private void openFilePW(){
try{
String inputFileName = "addressBook.txt";
FileWriter fw = new FileWriter(inputFileName, true);
outputFile = new PrintWriter(fw);
} catch(IOException error) {
JOptionPane.showConfirmDialog(null, error);
}
}