Java ';手册L和x27;y打开和关闭日志文件,并通过'打开/关闭它;程序';?
下面是我如何在使用windows时手动创建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 如果
日志
文件
- 打开记事本
- 用大写字母书写
.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的内置功能。你需要自己做。