วิธีการโทร:
/** * จำนวนการคลิก/เดือน (ปี) เธรด */โมฆะสาธารณะ WearlyClickThread () {// รับพารามิเตอร์สตริงปี = getPara ("ปี"); // สถิติชุดข้อมูล x รายการ <String> xList = new ArrayList <String> (); xlist.add ("มกราคม"); xlist.add ("กุมภาพันธ์"); xlist.add ("มีนาคม"); xlist.add ("เมษายน"); xlist.add ("พฤษภาคม"); xlist.add ("มิถุนายน"); xlist.add ("กรกฎาคม"); xlist.add ("กรกฎาคม"); xlist.add ("สิงหาคม"); xlist.add ("กันยายน"); xlist.add ("ตุลาคม"); xlist.add ("พฤศจิกายน"); xlist.add ("ธันวาคม"); // ชุดข้อมูลสถิติ y รายการ <จำนวนเต็ม> ylist = new ArrayList <integer> (); // รายการสถานะเธรดสถิติ <stread> threadList = new ArrayList <Dread> (); // รหัสสถานะเธรด int threadstatuscode = 0; // นับ int count = 0; // การวิเคราะห์บันทึกรายเดือนสำหรับ (int m = 1; m <= 12; m ++) {// รวบรวมรายการพารามิเตอร์วันที่ <String> datelist = new ArrayList <String> (); // สตริงวันที่ = ""; // กำหนดจำนวนวันที่ int = calendarutil.weekformonth (integer.valueof (ปี), m); // วันที่รวมกันสำหรับ (int i = 1; i <= วัน; i ++) {ถ้า (i <= 9) {ถ้า (m <= 9) {วันที่ = ปี + "-0" + m + "-0" + i; } else {date = year + "-" + m + "-0" + i; }} else {ถ้า (m <= 9) {วันที่ = ปี + "-0" + m + "-" + i; } else {วันที่ = ปี + "-" + m + "-" + i; }} datelist.add (วันที่); } // เริ่มเธรดเธรด = ใหม่ readLogFileThreadByyear (Datelist); thread.start (); ลอง {// hibernate thread.sleep (1000L); } catch (interruptedException e) {e.printStackTrace (); } threadlist.add (เธรด); } // รับสถานะเธรดสำหรับ (เธรด t: เธรดลิสต์) {ถ้า (t.getState (). toString (). เท่ากับ ("สิ้นสุด")) {ThreadStatusCode += 1; }} // ตรวจสอบว่าเธรดทั้งหมดถูกดำเนินการหรือไม่ถ้า (threadstatuscode == 12) {// รับพารามิเตอร์ // list <map <string, object >> list = readlogFileThread.list.sublist (0, 12); รายการ <แผนที่ <สตริงวัตถุ >> list = readLogFileThreadByyear.list; // ตั้งค่าพารามิเตอร์สำหรับ (int p = 0; p <list.size (); p ++) {count+= (int) list.get (p) .get ("clickCount"); if (list.get (p) .get ("เดือน"). เท่ากับ ("01")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("02")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("03")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("04")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("05")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("06")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get (p) .get ("เดือน"). เท่ากับ ("07")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("08")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("09")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("10")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("11")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); } อื่นถ้า (list.get (p) .get ("เดือน"). เท่ากับ ("12")) {ylist.add ((จำนวนเต็ม) list.get.get (p) .get ("clickCount")); }}} setAttr ("TotalCount", นับ); setattr ("x", xlist); setattr ("y", ylist); renderjson (); -วิธีการเกลียว:
แพ็คเกจ com.ninemax.util.loganalysis; นำเข้า java.io.bufferedreader; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.ioexception; นำเข้า java.io.inputstreamreader; java.util.map; นำเข้า com.ninemax.util.loganalysis.tool.constantutil;/** * multithreading ไม่มีค่าคืน * * @author darker * */คลาสสาธารณะ readlogfilethreadbyear ขยายเธรด {// วันที่ // ข้อมูลที่ใช้ร่วมกันรายการคงที่สาธารณะ <แผนที่ <string, object >> list = new ArrayList <แผนที่ <String, Object >> (); Public ReadLogFileThreadByYear (รายการ <String> คลิกดี) {this.ClickDate = ClickDate; } / ** * อ่านคลิกไฟล์บันทึก * * ตัวอย่าง: บทความ. click.2016-05-20.txt * * @return * / โมฆะสาธารณะเรียกใช้ () {// รับพารามิเตอร์แผนที่ <สตริง, วัตถุ> แผนที่ = new HashMap <String, Object> (); // ใช้ FileInputStream เพื่ออ่านข้อมูลไฟล์ FileInputStream FIS = NULL; // ใช้ inputStreamReader เพื่อ transCode inputStreamReader reader = null; // ใช้ bufferedReader เพื่อบัฟเฟอร์ bufferedreader bufreader = null; // ใช้ StringBuffer เพื่อรับเนื้อหาไฟล์คอนเทนเนอร์ StringBuffer BUF = ใหม่ StringBuffer (); // Clicks/Month int monthclick = 0; สำหรับ (int i = 0; i <clickdate.size (); i ++) {// รับไฟล์ไฟล์ clicklogfile = ไฟล์ใหม่ (ConstantUt.LogLocation, "บทความ click."+ clickdate.get (i)+ ".txt"); // ตรวจสอบว่าไฟล์มีอยู่หรือไม่ถ้า (! clicklogfile.exists () || clicklogfile.isdirectory ()) {system.err.println (clickdate.get (i) + "ไฟล์ไม่มีอยู่ ... "); } else {ลอง {// node stream fis = ใหม่ fileInputStream (clicklogfile); // แปลง stream reader = new InputStreamReader (FIS, "UTF-8"); // กระบวนการสตรีม bufreader = bufferedReader ใหม่ (ตัวอ่าน); // นับ int count = 0; // อ่านสตริงบรรทัด = ""; // อ่านไฟล์ในขณะที่ ((line = bufreader.readline ())! = null) {count ++; // รับข้อมูล if (! line.equals (null) &&! line.equals ("")) {buf.append (line + "/n"); }} if (count == 0) {count = 0; } else {count = count - 1; } monthclick += นับ; } catch (exception e) {e.printstacktrace (); } ในที่สุด {// ปิดสตรีมลอง {bufreader.close (); reader.close (); fis.close (); } catch (ioexception e) {e.printstacktrace (); }}}} map.put ("เดือน", clickdate.get (0) .Subeence (5, 7)); if (monthclick == 0) {map.put ("clickCount", 0); } else {map.put ("clickcount", monthclick); } // map.put ("clickContent", buf.toString ()); list.add (แผนที่); - 1 2NEXT หน้าอ่านข้อความเต็ม