Java—一种打开文件的方法,另一种写入文件,另一种关闭文件

Java—一种打开文件的方法,另一种写入文件,另一种关闭文件,java,Java,全部。。任务-打开文件,但不写入任何内容。当数据来自线程并请求记录时,将其写入文件。当请求停止日志记录时,请关闭该文件。文件最初应以追加模式打开。我用多种语言编写过这样的代码,但不是用Java编写的。我遇到的每件事都是关于一种打开、写入和关闭的方法。我需要的是打开一个文件并返回一个指向该文件的指针(FileWriter)。稍后使用该文件指针写入并最终关闭该文件。我的代码如下: import java.io.File; import java.io.FileWriter; import java.

全部。。任务-打开文件,但不写入任何内容。当数据来自线程并请求记录时,将其写入文件。当请求停止日志记录时,请关闭该文件。文件最初应以追加模式打开。我用多种语言编写过这样的代码,但不是用Java编写的。我遇到的每件事都是关于一种打开、写入和关闭的方法。我需要的是打开一个文件并返回一个指向该文件的指针(FileWriter)。稍后使用该文件指针写入并最终关闭该文件。我的代码如下:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class LogIt
{
  public static FileWriter outLog = null;

  public static void main(String[] args) throws IOException 
  {
   Logging lFile = new Logging() ;
   Logging.OpenLogFile(primeClass.theLogFile);
   Logging.CloseLogFile() ; 
  } 
// end main

public static void OpenLogFile(String filename) throws IOException 
{
// open output file
try  
 {
    // if file doesn't exists, then create it

    File file =new File(filename);
    if (!file.exists())
      {
        file.createNewFile();
        System.out.println("Logfile " + filename + " did not exist!");
      }
    FileWriter outLog = new FileWriter(filename, true);
    System.out.println("logFile " + filename + " has been opened for append mode");        
 }
catch  (IOException e)
   {
      System.out.println("Unable to Open log file " + filename);
      System.err.println("Error: " + e.getMessage());
   }
}
// End of OpenLogFile

public static void WriteLogFile(String line2Write) throws IOException 
{
// write output to opened file
try  
 {
  outLog = new FileWriter(line2Write);
  outLog.write(line2Write);
 }
catch  (IOException e)
   {
     System.out.println("Unable to write to " + PrimeClass.theLogFile);
     System.out.println("Error: " + e.getMessage());
   }
} // end OpenLogFile

public static void CloseLogFile() throws IOException 
{
 try  
 {
  outLog.close();
  System.out.println("file closed");
 }
 catch  (IOException e)
   {
   System.out.println("Unable to close logfile " + PrimeClass.theLogFile);
   System.out.println("Error: " + e.getMessage());      
   }
} 
// end CloseLogFile

} 
// end LogIt class
类进行编译,如果文件不存在,则创建它的类。但是,在不写入文件的情况下,尝试关闭文件会导致空指针异常。我正在考虑构建两种方法来设置和获取“outLog”值。此外,当写入发生时,它似乎实际上开始使用输出在目录上生成文件,而不是写入实际文件


建议?

您正在声明一个本地
FileWriter
,而不是分配给成员变量


注意:如果文件不存在,则不需要创建该文件`new FileWriter()'已经这样做了。

你能把你的问题改写成一个实际问题的形式吗?你可以当面问普通人,而不是这些简单的句子吗?我们喜欢帮助,但你需要花点精力问一个我们容易理解的问题(长篇大论是可以的。我们喜欢很多细节而不是摘要细节)