在一系列print语句中,如何只打印一次特定的语句?
示例:
public static void nameHere (arguments)
{
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
FileWriter fw = new FileWriter(filepath,true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
pw.println("A , B, C, D, E, F, G, "); //I want to print this satement only once
pw.print(dateFormat.format(date));
if (condition 1)
{
pw.println("Print STmt1");
}
else if (condition 2)
{
pw.println("Print STmt1");
}
else if (Condition 3)
{
pw.println("Print STmt1");
}
else
{
pw.println("Print STmt1");
}
pw.flush();
pw.close();
}
这实际上将日志附加到“filepath”中提到的CSV文件中,我只想打印“pw.println(”A,B,C,D,E,F,G,“)行;”虽然我多次调用该程序,但只有一次。
我有办法做到这一点吗?
答案 0 :(得分:1)
您可以创建一个简单的标记文件。
如果此文件不存在,则表示不执行print语句。打印并创建一个文件。
如果此文件存在,则表示执行print语句。不要打印任何东西。
File file = new File("flag.txt");
if(!file.exists()) {
pw.println("A , B, C, D, E, F, G, "); //I want to print this satement only once
file.createNewFile();
}
答案 1 :(得分:1)
private static boolean wasPrinted = false;
public static void nameHere(arguments) {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
FileWriter fw = new FileWriter(filepath, true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
if (!wasPrinted) {
pw.println("A , B, C, D, E, F, G, ");
wasPrinted = true;
}
pw.print(dateFormat.format(date));
if (cond 1) {
pw.println("Print STmt1");
} else if (cond 2) {
pw.println("Print STmt1");
} else if (cond 3) {
pw.println("Print STmt1");
} else {
pw.println("Print STmt1");
}
pw.flush();
pw.close();
}
在您发布代码时编辑代码并添加您需要执行的检查