簡體   English   中英

Java FileOutputStream 字符串寫入

[英]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.logginglog4j

寫入文件的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM