Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果某个条件成立,如何创建一个文件,并在以后的程序中使用它(在相同的条件下),使用Java?_Java_File - Fatal编程技术网

如果某个条件成立,如何创建一个文件,并在以后的程序中使用它(在相同的条件下),使用Java?

如果某个条件成立,如何创建一个文件,并在以后的程序中使用它(在相同的条件下),使用Java?,java,file,Java,File,我只想在条件c为真时创建一个文件,如果相同的条件为真,我想稍后在循环中更新这个文件。但是,如果我在if语句中创建一个文件,那么在if之外就无法访问它。例如,如果我创建一个文件: if(c){ Writer outputFile = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("path_2_output_file"), "UTF-8")); } //... 然后在程序的后面尝试写入此

我只想在条件c为真时创建一个文件,如果相同的条件为真,我想稍后在循环中更新这个文件。但是,如果我在if语句中创建一个文件,那么在if之外就无法访问它。例如,如果我创建一个文件:

if(c){ 
   Writer outputFile = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("path_2_output_file"), "UTF-8"));
}
//...
然后在程序的后面尝试写入此文件:

String l = "";
while ((l = someInputBuffer.readLine()) != null) {
   if(c){
      outputFile.write("new-"+l+"\n);
    }
}        

但是outputFile不可访问/不可用,因为它是在if语句中声明的。我应该如何解决这个问题?

您所要做的就是将Writer指针保持在循环之外:

Writer w = null;
if(c) w= new Writer...;
loop{
    //Do Stuff
    if(w!=null)w.append("info");
}