'manuall'y打开和关闭日志文件并通过'程序'打开/关闭它之间有什么区别吗?

时间:2012-10-07 06:25:44

标签: java windows file logging notepad

以下是我在使用Windows时手动创建log文件的方法。

  • 打开记事本
  • 在首都写.LOG
  • 关闭文件

下次打开文件时,会自动添加当前日期/时间的条目。喜欢:

.LOG
11:33 AM 07-Oct-12

当您尝试关闭文件时,它会询问您是否要保存。如果我们点击保存,那么下次在12:20 P.M 07-Oct-2012上说我们打开该文件,它将如下所示:

.LOG
11:33 AM 07-Oct-12

12:20 P.M 07-Oct-2012

如果我们点击下次不保存,文件将如下所示:

.LOG
12:20 P.M 07-Oct-2012

以上是一种存储日志的手动方式。我正在尝试使用程序执行此操作。我已经创建了一个名为 LOG 的文件,它有.LOG和后面的换行符。但是当我写一个这样的文件的条目,如first entry,然后关闭文件/编写器,然后再打开写一个新的条目,如second entry,两个都一个接一个地添加,但不是单独的时间/日期标题。为什么是这样 ?因为如果我手动(而不是通过程序)打开该特定文件,则会添加当前日期和时间的条目。通过点击打开文件并通过FileReader/FileWriter打开它有什么区别吗?

以下是我尝试使用不同日期/时间标题的每个新条目写入日志文件的方法。

        try {
        File f = new File("C:/Users/user/Desktop/LOG.txt");
        if(f.exists()) {
            System.out.println("exists");
            FileWriter writer = new FileWriter(f,true);
            String content = jTextArea1.getText();
            writer.write(content);
            writer.close();

            FileReader reader = new FileReader(f);
            int x;
            while( (x = reader.read() ) > 0) {
                System.out.print((char)x);
            }
            reader.close();
        }
    }catch(Exception exc) {
        System.out.println(exc);
    }

上面的代码片段首先将一个条目写入名为 LOG.txt 的日志文件,然后尝试从该文件中读取。例如,最初文件看起来像:

.LOG

添加条目后,让它成为第一个日志,它变为:

.LOG
first log

当我希望它看起来像:

.LOG
12:20 P.M 07-Oct-2012
first entry..
12:23 P.M 07-Oct-2012
second entry..
12:28 P.M 07-Oct-2012
third entry..   

但随着我不断添加新条目,它继续这样:

.LOG
first entry..second entry..third entry...

当我转到目录并通过双击打开文件时,会在文件中添加日期/时间条目并显示,如下所示:

    .LOG
    first entry..second entry..third entry...
    12:20 P.M 07-Oct-2012

为什么?是指示:

FileReader reader = new FileReader(fileObject);
// read
reader.close();
首先双击然后点击十字架并保存文件,

不等于打开和关闭文件?

注意: ~ Ref : How to use Notepad to create a Log file (Microsoft)

0 个答案:

没有答案