0
所有..任务 - 打开文件,但不写任何东西。当数据来自线程并请求登录时,将其写入文件。当请求停止记录时,关闭文件。文件应该以附加模式初始打开。我已经用多种语言编写了这样的代码,但没有用Java编写。我遇到的每件事都谈到了一种打开,写入和关闭的方法。我需要的是打开一个文件并返回一个指向该文件(FileWriter)的指针。稍后使用该文件指针来写入并最终关闭文件。我的代码如下:Java - 一种方法打开文件另一个写和另一个关闭
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
该类编译时,如果该文件不存在,则创建它。但是,如果不写入文件,试图关闭文件会导致空指针异常。我正在考虑构建2个方法来设置并获取“outLog”值。而且,看起来在写入发生时,它实际上开始使用输出在目录上生成文件而不是写入实际文件。
对此提出建议?
请问您可以用真实问题的形式重写您的问题,您会问正常人面对面,而不是这些单一factoid句子?我们喜欢帮助,但是您需要付出一些努力来提出一个我们可以轻松理解的问题(可以详细说明,我们更喜欢大量的细节而不是详细的细节) – 2014-10-11 05:43:24