Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ';手册L和x27;y打开和关闭日志文件,并通过'打开/关闭它;程序';?_Java_Windows_File_Logging_Notepad - Fatal编程技术网

Java ';手册L和x27;y打开和关闭日志文件,并通过'打开/关闭它;程序';?

Java ';手册L和x27;y打开和关闭日志文件,并通过'打开/关闭它;程序';?,java,windows,file,logging,notepad,Java,Windows,File,Logging,Notepad,下面是我如何在使用windows时手动创建日志文件 打开记事本 用大写字母书写.LOG 关闭文件 下次打开文件时,将自动添加当前日期/时间的条目。比如: .LOG 11:33 AM 07-Oct-12 当您试图关闭文件时,它会询问您是否要保存。如果我们单击“保存”,那么下次在2012年10月7日下午12:20打开该文件时,它将显示为: .LOG 11:33 AM 07-Oct-12 12:20 P.M 07-Oct-2012 .LOG 12:20 P.M 07-Oct-2012 如果

下面是我如何在使用windows时手动创建
日志
文件

  • 打开记事本
  • 用大写字母书写
    .LOG
  • 关闭文件
下次打开文件时,将自动添加当前日期/时间的条目。比如:

.LOG
11:33 AM 07-Oct-12
当您试图关闭文件时,它会询问您是否要保存。如果我们单击“保存”,那么下次在2012年10月7日下午12:20打开该文件时,它将显示为:

.LOG
11:33 AM 07-Oct-12

12:20 P.M 07-Oct-2012
.LOG
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
和一个换行符。但是,当我向该文件写入一个条目,如
第一个条目
,然后关闭该文件/写入程序,然后再次打开以写入一个新条目,如
第二个条目
,这两个条目都会一个接一个地添加,但不在单独的时间/日期标题下。为什么会这样?因为如果我手动(而不是通过程序)打开特定文件,就会添加当前日期和时间的条目。单击打开文件和通过
文件读取器/文件写入器打开文件有什么区别吗

下面是我如何尝试将每个新条目写在单独的日期/时间标题下的日志文件

        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
当我转到目录并双击打开文件时,文件中会添加一个日期/时间条目,如下所示:

.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();
这不等于先双击然后单击十字并保存文件来打开和关闭文件吗


注意:

简单的原因是在windows中打开文件与FileReader=new FileReader(fileObject)不同;哇-我以前从未听说过:)但这是一个“记事本的东西”。我认为您不能从Java中充分利用它。但是,编写自己的文本文件并在其中写入自己的时间戳肯定很容易。或者使用类似log4j的东西……这是
记事本的功能,而不是Windows的内置功能。你需要自己做。