[英]Java FileOutputStream String Writing
我遇到了 Java 文件的問題。 它旨在將測試文件中的一行一行寫入作為日志。 不幸的是,每次我調用它時它都會覆蓋同一行。
如果有人可以提供幫助,我將永遠感激不盡,因為這一直在推動我前進!
代碼如下。
public abstract class Log {
protected static String DefaultLogFileLocation = "c:\\LOG.txt";
public static void ToFile(String pInputString) {
FileOutputStream pOUTPUT;
PrintStream pPRINT;
try
{
pOUTPUT = new FileOutputStream(DefaultLogFileLocation);
pPRINT = new PrintStream(pOUTPUT);
pPRINT.println (pInputString + "\n");
pPRINT.close();
}
catch (Exception e)
{
System.err.println ("Error writing to file");
}
}
}
您忘記傳遞構造函數參數來指定您需要將數據附加到文件。
pOUTPUT = new FileOutputStream(DefaultLogFileLocation, true);
另外,為什么不使用一些 Java Logging Framework? 例如java.util.logging或log4j
寫入文件的 log4j 配置示例:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="C:\\LOG.TXT" />
<param name="datePattern" value="'.'yyyy-MM" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n"/>
</layout>
</appender>
<root>
<priority value ="debug" />
<appender-ref ref="FILE" />
<appender-ref ref="console" />
</root>
我建議使用具有append
參數的FileOutputStream
構造函數。
一般來說,熟悉Javadocs,他們可以比這里的人更快地回答這樣的簡單問題。
嘗試使用pOUTPUT = new FileOutputStream(DefaultLogFileLocation, true);
. 請參閱FileOutputStream() 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.