繁体   English   中英

我如何将结果写入文件

[英]How i can write the results in a file

我试图将程序的结果写入文件中,但是我不知道为什么它不写入任何内容。

我已经完成一个程序,它创建了一个文件,但是当我打开文件时,它是空的。 我做错了什么?

MongoClient mongoClient;
DB db;

mongoClient = new MongoClient("localhost", 27017);
db = mongoClient.getDB("behaviourDB_areas");  

DBCollection cEvent = db.getCollection("events_Searching");                                     
File file = new File ("C:\\Users\\Nikos\\Documents\\Apotelesmata\\file1.txt");
file.getParentFile().mkdirs();

PrintWriter writer = new PrintWriter (file);    

 BasicDBObject orderBy = new BasicDBObject();
 orderBy.put("timeStamp",1);

 DBCursor cursorEvents = null;

 BasicDBObject searchQuery = new BasicDBObject();
 searchQuery.put("user_id", "55b20db905f333defea9827f");

 cursorEvents = cEvent.find(searchQuery).sort(orderBy);

 int count = 1;
 int start = 1;
 String timeStartOld = null;

 while (cursorEvents.hasNext()) {

    DBObject documentInEventCollection = cursorEvents.next();

    if("pageLoad".equals(documentInEventCollection.get("type"))){ 

        writer.println("URL(" + count + "): " + documentInEventCollection.get("url").toString());
        //System.out.println("time-start(" + start + "): " + documentInEventCollection.get("timeStamp").toString());
        count++;
        start++;

        try {
           String timeStart = (documentInEventCollection.get("timeStamp").toString());

           if(timeStartOld==null){
               timeStartOld = timeStart;
               continue;
           }

           SimpleDateFormat format = new SimpleDateFormat("yyyy-dd-MM;HH:mm:ss");

           Date d1 = null;
           Date d2 = null;

           d1 = format.parse(timeStartOld);
           d2 = format.parse(timeStart);

           //in milliseconds
           long diff = d2.getTime() - d1.getTime();

           long diffSeconds = diff / 1000 % 60;
           long diffMinutes = diff / (60 * 1000) % 60;
           long diffHours = diff / (60 * 60 * 1000) % 24;
           long diffDays = diff / (24 * 60 * 60 * 1000);

           writer.println(diffDays + " days, ");
           writer.println(diffHours + " hours, ");
           writer.println(diffMinutes + " minutes, ");
           writer.println(diffSeconds + " seconds.");

           timeStartOld = timeStart;

      } catch (Exception e) {
           e.printStackTrace();
      }
  }
  writer.close();
}   
mongoClient.close();

谢谢您的回答。

尝试在控制台中打印以下语句。

System.out.println("time-start(" + start + "): " + documentInEventCollection.get("timeStamp").toString());

如果不是,则执行不输入以下if语句。 尝试一些条件, if true

 if("pageLoad".equals(documentInEventCollection.get("type"))){  ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM