Java 版画作者问题
我正在写一个程序,设计为平安在线数据库,并把状态日志写到一个.txt 每当我运行程序并打开.txt时,时间戳告诉我它刚刚被更改,但它是空的Java 版画作者问题,java,outputstream,Java,Outputstream,我正在写一个程序,设计为平安在线数据库,并把状态日志写到一个.txt 每当我运行程序并打开.txt时,时间戳告诉我它刚刚被更改,但它是空的 public static void printToFile(String text) { String fileName = "log.txt"; PrintWriter outputStream = null; try { outputStream = new PrintWriter(fileName);
public static void printToFile(String text) {
String fileName = "log.txt";
PrintWriter outputStream = null;
try {
outputStream = new PrintWriter(fileName);
System.out.println("Printing to txt");
outputStream.println("Debug");
} catch (FileNotFoundException e) {
System.out.println("Error opening the file " + fileName);
outputStream.close();
}
}
public static void pingDatabase(Connection conn) throws SQLException, InterruptedException {
Date timeStamp = new Date(System.currentTimeMillis());
do {
if (conn.isValid(10000)) {
System.out.println("Printtofile called");
printToFile("Database is Online");
} else {
printToFile("Database is Offline");
}
Thread.sleep(10000);
} while (true);
}
由于是日志,您可能需要追加内容,而不是每次写入,并且在写入后需要将内容刷新到日志文件中
public static void printToFile(String text) {
String fileName = "log.txt";
PrintWriter outputStream=null;
try {
outputStream =new PrintWriter(new FileWriter(fileName,true));
System.out.println("Printing to txt");
outputStream.append(text+"\n");
outputStream.flush();//flushing to file
} catch (IOException e) {
e.printStackTrace();
System.out.println("Error opening the file " + fileName);
}
finally{
outputStream.close();
}
}
新FileWriter(fileName,true)FileWriter是OutPutStreamWriter的子类,用于在追加模式下打开
true
,除非出现异常,否则不会关闭或刷新PrintWriter
考虑到当前代码,您还需要以追加模式打开输出文件,但保持其打开更有意义。每个消息打开和关闭一个文件的开销是巨大的。请解释为什么在
catch
块中关闭流是必要的,而不是在任何其他时间,以及为什么IOException
只能是由于打开文件时出现问题而不是其他原因。@EJP只完成了一个部分,所以我将对此进行研究,如果你想知道是谁否决了你的答案,你也会被留下来评论。你的编辑假设没有引发任何异常。我知道,当你像一个mnt一样回答时,没有评论就投了反对票,这真是一场噩梦before@EJP仅FileNotFoundException不够,因为PrintWriter需要IOException才能catch@Roushan和什么一样的答案?我在这里看到的唯一相同的答案是依赖于我提供的信息。美国提供了哪些信息?我不明白such@Roushan这就是我在回答中所说的,在我对你的回答的评论中,这似乎也是姚所主张的所有权,而你没有。如果你还有其他的观点,请提出来。现在这只是噪音,好的,是哪一个?您不需要关闭或刷新PrintWriter
?他不需要在附加模式下打开他的文件?让它开着不会更有意义吗?打开和关闭每条消息的开销不是很大吗?请