解析.txt檔案入庫
前段時間遇到這樣需求,需要從資料夾中讀取.txt檔案按照一定規則解析入庫,並且在tomcat開啟時,開5個執行緒共同去解析檔案入庫
解析程式碼如下:
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.TimeZone; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.hrtel.analyzeMR.entity.XDR_General_purpose; import com.hrtel.analyzeMR.entity.XDR_HTTP; import com.hrtel.analyzeMR.entity.XDR_Instant_Communication; import com.hrtel.analyzeMR.entity.XDR_S1_MME; import com.hrtel.analyzeMR.entity.XDR_VoIP; import com.hrtel.analyzeMR.service.AnalyzeXdrService; public class AnalyzeXdrController { //在springmvc中非controller類中呼叫service介面,以獲取springmvc容器方法實現 ApplicationContext ac = new ClassPathXmlApplicationContext("spring-mybatis.xml"); AnalyzeXdrService analyzeXdrService = (AnalyzeXdrService) ac.getBean("analyzeXdrService"); /** * 啟動一個執行緒,定時去讀取檔案 * ScheduledExecutorService定時週期執行指定任務 */ public void realTimeCommunication(){ ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); //啟動一個執行緒每10秒鐘呼叫一次讀取檔案的方法 exec.scheduleWithFixedDelay(new Runnable(){ public void run(){ readInstantCommunication(); } },0, 10, TimeUnit.SECONDS); } public void realTimeMmeXdr(){ ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); //啟動一個執行緒每10秒鐘呼叫一次讀取檔案的方法 exec.scheduleWithFixedDelay(new Runnable(){ public void run(){ readSMmeXdr(); } },0, 10, TimeUnit.SECONDS); } public void realTimeHttpXdr(){ ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); //啟動一個執行緒每10秒鐘呼叫一次讀取檔案的方法 exec.scheduleWithFixedDelay(new Runnable(){ public void run(){ readHttpXdr(); } },0, 10, TimeUnit.SECONDS); } public void realTimeVoipXdr(){ ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); //啟動一個執行緒每10秒鐘呼叫一次讀取檔案的方法 exec.scheduleWithFixedDelay(new Runnable(){ public void run(){ readVoipXdr(); } },0, 10, TimeUnit.SECONDS); } public void realTimePurposeXdr(){ ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); //啟動一個執行緒每10秒鐘呼叫一次讀取檔案的方法 exec.scheduleWithFixedDelay(new Runnable(){ public void run(){ readGeneralPurposeXdr(); } },0, 10, TimeUnit.SECONDS); } /** * 解析即時通訊 */ public void readInstantCommunication(){ BufferedReader br; InputStreamReader inputStreamReader; FileInputStream fileInputStream; // String uri = "E:/xdr/jishitongxin"; String uri = "/sdb/xdr_msg"; List<XDR_Instant_Communication> list = new ArrayList<XDR_Instant_Communication>(); //計時 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS"); TimeZone t = sdf.getTimeZone(); t.setRawOffset(0); sdf.setTimeZone(t); Long startTime = System.currentTimeMillis(); //計時 File mrefile = new File(uri); File[] array = mrefile.listFiles(); for(int i=0;i<array.length;i++){ File file = array[i]; String inFileName = array[i].getPath(); System.out.println("路徑"+inFileName); try { fileInputStream = new FileInputStream(inFileName); inputStreamReader =new InputStreamReader(fileInputStream); br = new BufferedReader(inputStreamReader); String line = ""; while((line=br.readLine())!=null){ String[] str = line.split("\\|"); if(str.length == 56){ XDR_Instant_Communication ic = new XDR_Instant_Communication(str[0],str[1],str[2], str[3], str[4], str[5], str[6], str[7], str[8], str[9], str[10], str[11], str[12], str[13], str[14], str[15], str[16], str[17], str[18], str[19], str[20], str[21], str[22], str[23], str[24], str[25], str[26], str[27], str[28], str[29], str[30], str[31], str[32], str[33], str[34], str[35], str[36], str[37], str[38], str[39], str[40], str[41], str[42], str[43], str[44], str[45], str[46], str[47], str[48], str[49], str[50], str[51], str[52], str[53], str[54], str[55]); list.add(ic); } if(list.size()==1000){ System.out.println(list.size()); analyzeXdrService.insertInstantCommuniction(list); list.clear(); } } if (list.size()>0){ analyzeXdrService.insertInstantCommuniction(list); list.clear(); } System.out.println("上傳成功!!"); Long endTime = System.currentTimeMillis(); System.out.println("用時:" + sdf.format(new Date(endTime - startTime))); br.close(); inputStreamReader.close(); fileInputStream.close(); if (file.exists()){ Boolean flag = file.delete(); if (flag){ System.out.println("檔案刪除成功"); } } } catch (Exception e) { e.printStackTrace(); } } } /** * 解析S1_MME_XDR */ public void readSMmeXdr(){ BufferedReader br; InputStreamReader inputStreamReader; FileInputStream fileInputStream; // String uri = "F:\\xdr\\xianMME2015111800001"; String uri = "/sdb/xdr_s1mme"; List<XDR_S1_MME> list = new ArrayList<XDR_S1_MME>(); //計時 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS"); TimeZone t = sdf.getTimeZone(); t.setRawOffset(0); sdf.setTimeZone(t); Long startTime = System.currentTimeMillis(); //計時 File mrefile = new File(uri); File[] array = mrefile.listFiles(); for(int i=0;i<array.length;i++){ String inFileName = array[i].getPath(); File file = array[i]; System.out.println("路徑"+inFileName); try { fileInputStream = new FileInputStream(inFileName); inputStreamReader =new InputStreamReader(fileInputStream); br = new BufferedReader(inputStreamReader); String line = ""; String srg[] = new String[85]; //初始化一下陣列長度,為後面資料補空 while((line=br.readLine())!=null){ String[] str = line.split("\\,"); if (str.length > 0){ for (int j = 0; j<str.length; j++){ srg[j] = str[j]; } } XDR_S1_MME sm = new XDR_S1_MME(srg[0],srg[1], srg[2], srg[3], srg[4], srg[5], srg[6], srg[7], srg[8], srg[9], srg[10], srg[11], srg[12], srg[13], srg[14], srg[15], srg[16], srg[17], srg[18], srg[19], srg[20], srg[21], srg[22], srg[23], srg[24], srg[25], srg[26], srg[27], srg[28], srg[29], srg[30], srg[31], srg[32], srg[33], srg[34], srg[35], srg[36], srg[37], srg[38], srg[39], srg[40], srg[41], srg[42], srg[43], srg[44], srg[45], srg[46], srg[47], srg[48], srg[49], srg[50], srg[51], srg[52], srg[53], srg[54], srg[55], srg[56], srg[57], srg[58], srg[59], srg[60], srg[61], srg[62], srg[63], srg[64], srg[65], srg[66], srg[67], srg[68], srg[69], srg[70], srg[71], srg[72], srg[73], srg[74], srg[75], srg[76], srg[77], srg[78], srg[79], srg[80], srg[81], srg[82], srg[83], srg[84]); list.add(sm); if(list.size()==100){ analyzeXdrService.insertSMmeXdr(list); list.clear(); } } analyzeXdrService.insertSMmeXdr(list); list.clear(); System.out.println("上傳成功!!"); Long endTime = System.currentTimeMillis(); System.out.println("用時:" + sdf.format(new Date(endTime - startTime))); br.close(); inputStreamReader.close(); fileInputStream.close(); boolean flag = file.delete(); if (flag){ System.out.println("檔案刪除成功"); } } catch (Exception e) { e.printStackTrace(); } } } /** * 解析HTTP_XDR */ public void readHttpXdr(){ BufferedReader br; InputStreamReader inputStreamReader; FileInputStream fileInputStream; // String uri = "F:\\xdr\\httpxian1032015111800002"; String uri = "/sdb/xdr_http"; List<XDR_HTTP> list = new ArrayList<XDR_HTTP>(); //計時 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS"); TimeZone t = sdf.getTimeZone(); t.setRawOffset(0); sdf.setTimeZone(t); Long startTime = System.currentTimeMillis(); //計時 File mrefile = new File(uri); File[] array = mrefile.listFiles(); for(int i=0;i<array.length;i++){ String inFileName = array[i].getPath(); File file = array[i]; System.out.println("路徑"+inFileName); try { fileInputStream = new FileInputStream(inFileName); inputStreamReader =new InputStreamReader(fileInputStream); br = new BufferedReader(inputStreamReader); String line = ""; String srg[] = new String[85]; //初始化一下陣列長度,為後面資料補空 while((line=br.readLine())!=null){ String[] str = line.split("\\|"); if (str.length > 0){ for (int j = 0; j<str.length; j++){ srg[j] = str[j]; } } XDR_HTTP sm = new XDR_HTTP(srg[0],srg[1], srg[2], srg[3], srg[4], srg[5], srg[6], srg[7], srg[8], srg[9], srg[10], srg[11], srg[12], srg[13], srg[14], srg[15], srg[16], srg[17], srg[18], srg[19], srg[20], srg[21], srg[22], srg[23], srg[24], srg[25], srg[26], srg[27], srg[28], srg[29], srg[30], srg[31], srg[32], srg[33], srg[34], srg[35], srg[36], srg[37], srg[38], srg[39], srg[40], srg[41], srg[42], srg[43], srg[44], srg[45], srg[46], srg[47], srg[48], srg[49], srg[50], srg[51], srg[52], srg[53], srg[54], srg[55], srg[56], srg[57], srg[58], srg[59], srg[60], srg[61], srg[62], srg[63], srg[64], srg[65], srg[66], srg[67], srg[68], srg[69], srg[70], srg[71], srg[72], srg[73], srg[74], srg[75]); list.add(sm); if(list.size()==100){ System.out.println(list.size()); analyzeXdrService.insertHttpXdr(list); list.clear(); } } analyzeXdrService.insertHttpXdr(list); list.clear(); System.out.println("上傳成功!!"); Long endTime = System.currentTimeMillis(); System.out.println("用時:" + sdf.format(new Date(endTime - startTime))); br.close(); inputStreamReader.close(); fileInputStream.close(); boolean flag = file.delete(); if (flag){ System.out.println("檔案刪除成功"); } } catch (Exception e) { e.printStackTrace(); } } } /** * 解析VoIp_XDR */ public void readVoipXdr(){ BufferedReader br; InputStreamReader inputStreamReader; FileInputStream fileInputStream; // String uri = "F:\\xdr\\voip"; String uri = "/sdb/xdr_voip"; List<XDR_VoIP> list = new ArrayList<XDR_VoIP>(); //計時 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS"); TimeZone t = sdf.getTimeZone(); t.setRawOffset(0); sdf.setTimeZone(t); Long startTime = System.currentTimeMillis(); //計時 int num = 0; File mrefile = new File(uri); File[] array = mrefile.listFiles(); for(int i=0;i<array.length;i++){ String inFileName = array[i].getPath(); File file = array[i]; System.out.println("路徑"+inFileName); try { fileInputStream = new FileInputStream(inFileName); inputStreamReader =new InputStreamReader(fileInputStream); br = new BufferedReader(inputStreamReader); String line = ""; String srg[] = new String[59]; //初始化一下陣列長度,為後面資料補空 while((line=br.readLine())!=null){ String[] str = line.split("\\|"); if (str.length > 0){ for (int j = 0; j<str.length; j++){ srg[j] = str[j]; } } XDR_VoIP sm = new XDR_VoIP(srg[0],srg[1], srg[2], srg[3], srg[4], srg[5], srg[6], srg[7], srg[8], srg[9], srg[10], srg[11], srg[12], srg[13], srg[14], srg[15], srg[16], srg[17], srg[18], srg[19], srg[20], srg[21], srg[22], srg[23], srg[24], srg[25], srg[26], srg[27], srg[28], srg[29], srg[30], srg[31], srg[32], srg[33], srg[34], srg[35], srg[36], srg[37], srg[38], srg[39], srg[40], srg[41], srg[42], srg[43], srg[44], srg[45], srg[46], srg[47], srg[48], srg[49], srg[50], srg[51], srg[52], srg[53], srg[54], srg[55], srg[56], srg[57], srg[58] ); list.add(sm); if(list.size()==100){ System.out.println(list.size()); analyzeXdrService.insertVoipXdr(list); list.clear(); } } analyzeXdrService.insertVoipXdr(list); list.clear(); Long endTime = System.currentTimeMillis(); System.out.println("用時:" + sdf.format(new Date(endTime - startTime))); br.close(); inputStreamReader.close(); fileInputStream.close(); boolean flag = file.delete(); if (flag){ System.out.println("檔案刪除成功"); } } catch (Exception e) { e.printStackTrace(); } } } /** * 解析通用話單 */ public void readGeneralPurposeXdr(){ BufferedReader br; InputStreamReader inputStreamReader; FileInputStream fileInputStream; // String uri = "F:\\xdr\\tongtong"; String uri = "/sdb/xdr_common"; List<XDR_General_purpose> list = new ArrayList<XDR_General_purpose>(); //計時 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS"); TimeZone t = sdf.getTimeZone(); t.setRawOffset(0); sdf.setTimeZone(t); Long startTime = System.currentTimeMillis(); //計時 File mrefile = new File(uri); File[] array = mrefile.listFiles(); for(int i=0;i<array.length;i++){ String inFileName = array[i].getPath(); File file = array[i]; System.out.println("路徑"+inFileName); try { fileInputStream = new FileInputStream(inFileName); inputStreamReader =new InputStreamReader(fileInputStream); br = new BufferedReader(inputStreamReader); String line = ""; String srg[] = new String[52]; //初始化一下陣列長度,為後面資料補空 while((line=br.readLine())!=null){ String[] str = line.split("\\|"); if (str.length > 0){ for (int j = 0; j<str.length; j++){ srg[j] = str[j]; } } XDR_General_purpose sm = new XDR_General_purpose(srg[0],srg[1], srg[2], srg[3], srg[4], srg[5], srg[6], srg[7], srg[8], srg[9], srg[10], srg[11], srg[12], srg[13], srg[14], srg[15], srg[16], srg[17], srg[18], srg[19], srg[20], srg[21], srg[22], srg[23], srg[24], srg[25], srg[26], srg[27], srg[28], srg[29], srg[30], srg[31], srg[32], srg[33], srg[34], srg[35], srg[36], srg[37], srg[38], srg[39], srg[40], srg[41], srg[42], srg[43], srg[44], srg[45], srg[46], srg[47], srg[48], srg[49], srg[50], srg[51]); list.add(sm); if(list.size()==100){ System.out.println(list.size()); // System.out.println(list); analyzeXdrService.insertGeneralPurposeXdr(list); list.clear(); } } analyzeXdrService.insertGeneralPurposeXdr(list); list.clear(); System.out.println("上傳成功!!"); Long endTime = System.currentTimeMillis(); System.out.println("用時:" + sdf.format(new Date(endTime - startTime))); br.close(); inputStreamReader.close(); fileInputStream.close(); boolean flag = file.delete(); if (flag){ System.out.println("檔案刪除成功"); } } catch (Exception e) { e.printStackTrace(); } } } }
執行緒監聽程式碼如下:
package com.hrtel.framework.util; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import com.hrtel.analyzeMR.controller.AnalyzeXdrController; public class ReadXDRFileListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent event) {// 在這裡初始化監聽器,在tomcat啟動的時候監聽器啟動,可以在這裡實現定時器功能 AnalyzeXdrController adc = new AnalyzeXdrController(); System.out.println("啟動成功"); event.getServletContext().log("定時器已啟動--------------------------------------------------");// 新增日誌,可在tomcat日誌中檢視到 adc.realTimeCommunication(); adc.realTimeHttpXdr(); adc.realTimeMmeXdr(); adc.realTimePurposeXdr(); adc.realTimeVoipXdr(); event.getServletContext().log("已經新增任務--------------------------------------------------"); } @Override public void contextDestroyed(ServletContextEvent event) {// 在這裡關閉監聽器,所以在這裡銷燬定時器。 } }
web.xml配置如下:
<!-- 監聽讀取XDR檔案 -->
<listener>
<listener-class>com.hrtel.framework.util.ReadXDRFileListener</listener-class>
</listener>
mapping.xml程式碼如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.hrtel.analyzeMR.dao.AnalyzaXDRMapper" > <!-- 即時通訊 --> <insert id="insertInstantCommuniction" parameterType="java.util.List"> insert into XDR_Instant_Communication (Length, City, Interface, xDR_ID, RAT, IMSI, IMEI, MSISDN, MachineIPAddtype, SGW_GGSN_IP_Add, eNB_SGSN_IP_Add,SGW_GGSN_Port, eNB_SGSN_Port, eNB_SGSN_GTP_TEID, SGW_GGSN_GTP_TEID, TAC, Cell_ID, APN, App_Type_Code, Procedure_Start_Time, Procedure_End_Time, Protocol_Type, App_Type, App_Sub_type, App_Content, App_Status, USER_IPv4, USER_IPv6, User_Port, L4_protocal, App_Server_IP_IPv4, App_Server_IP_IPv6, App_Server_Port, UL_Data, DL_Data, UL_IP_Packet, DL_IP_Packet, pkt_disorder_ul, pkt_disorder_dl, pkt_retrs_ul, pkt_retrs_dl, TCP_resp_delay, TCP_confirmation_delay, UL_IP_FRAG_PACKETS, DL_IP_FRAG_PACKETS, TCP_First_transaction_requ_delay, First_transaction_requ_delay, Window_size, MSS_size, TCP_construction_numbe, TCP_connection_status_indicato, session_whethe_ends, Login_account, Software_version, Client_Type, Operation_Type) values <foreach collection="list" item="item" index="index" separator="," > (#{item.Length,jdbcType=VARCHAR}, #{item.City,jdbcType=VARCHAR}, #{item.Interface,jdbcType=VARCHAR}, #{item.xDR_ID,jdbcType=VARCHAR}, #{item.RAT,jdbcType=VARCHAR}, #{item.IMSI,jdbcType=VARCHAR}, #{item.IMEI,jdbcType=VARCHAR}, #{item.MSISDN,jdbcType=VARCHAR}, #{item.MachineIPAddtype,jdbcType=VARCHAR}, #{item.SGW_GGSN_IP_Add,jdbcType=VARCHAR}, #{item.eNB_SGSN_IP_Add,jdbcType=VARCHAR}, #{item.SGW_GGSN_Port,jdbcType=VARCHAR}, #{item.eNB_SGSN_Port,jdbcType=VARCHAR}, #{item.eNB_SGSN_GTP_TEID,jdbcType=VARCHAR}, #{item.SGW_GGSN_GTP_TEID,jdbcType=VARCHAR}, #{item.TAC,jdbcType=VARCHAR}, #{item.Cell_ID,jdbcType=VARCHAR}, #{item.APN,jdbcType=VARCHAR}, #{item.App_Type_Code,jdbcType=VARCHAR}, #{item.Procedure_Start_Time}, #{item.Procedure_End_Time}, #{item.Protocol_Type,jdbcType=VARCHAR}, #{item.App_Type,jdbcType=VARCHAR}, #{item.App_Sub_type,jdbcType=VARCHAR}, #{item.App_Content,jdbcType=VARCHAR}, #{item.App_Status,jdbcType=VARCHAR}, #{item.USER_IPv4,jdbcType=VARCHAR}, #{item.USER_IPv6,jdbcType=VARCHAR}, #{item.User_Port,jdbcType=VARCHAR}, #{item.L4_protocal,jdbcType=VARCHAR}, #{item.App_Server_IP_IPv4,jdbcType=VARCHAR}, #{item.App_Server_IP_IPv6,jdbcType=VARCHAR}, #{item.App_Server_Port,jdbcType=VARCHAR}, #{item.UL_Data,jdbcType=VARCHAR}, #{item.DL_Data,jdbcType=VARCHAR}, #{item.UL_IP_Packet,jdbcType=VARCHAR}, #{item.DL_IP_Packet,jdbcType=VARCHAR}, #{item.pkt_disorder_ul,jdbcType=VARCHAR}, #{item.pkt_disorder_dl,jdbcType=VARCHAR}, #{item.pkt_retrs_ul,jdbcType=VARCHAR}, #{item.pkt_retrs_dl,jdbcType=VARCHAR}, #{item.TCP_resp_delay,jdbcType=VARCHAR}, #{item.TCP_confirmation_delay,jdbcType=VARCHAR}, #{item.UL_IP_FRAG_PACKETS,jdbcType=VARCHAR}, #{item.DL_IP_FRAG_PACKETS,jdbcType=VARCHAR}, #{item.TCP_First_transaction_requ_delay,jdbcType=VARCHAR}, #{item.First_transaction_requ_delay,jdbcType=VARCHAR}, #{item.Window_size,jdbcType=VARCHAR}, #{item.MSS_size,jdbcType=VARCHAR}, #{item.TCP_construction_numbe,jdbcType=VARCHAR}, #{item.TCP_connection_status_indicato,jdbcType=VARCHAR}, #{item.session_whethe_ends,jdbcType=VARCHAR}, #{item.Login_account,jdbcType=VARCHAR}, #{item.Software_version,jdbcType=VARCHAR}, #{item.Client_Type,jdbcType=VARCHAR}, #{item.Operation_Type,jdbcType=VARCHAR}) </foreach> </insert>
相關推薦
解析.txt檔案入庫
前段時間遇到這樣需求,需要從資料夾中讀取.txt檔案按照一定規則解析入庫,並且在tomcat開啟時,開5個執行緒共同去解析檔案入庫 解析程式碼如下: import java.io.BufferedReader; import java.io.File; import ja
【基於WPF+OneNote+Oracle的中文圖片識別系統階段總結】之篇三:批量處理後的txt檔案入庫處理
【小記】:大膽嘗試才能突破,某個中醫藥大學有一批圖片需要處理(ORC),然後進行資料探勘。之前沒有接觸過ORC這個東西,但是還是應允了。在網上搜索一番,關於中文圖片識別,最終敲定為基於微軟的OneNote,其識別率相對較高。網上這個技術點的資料真心不多,後來於部落格園找到一篇博文,但是那個
讀檔案 —— WEB前端讀取本地檔案內容哪些事(前臺解析txt檔案)……
強制讓瀏覽器允許JS讀寫本地檔案……的操作!問題描述:讓自己的瀏覽器允許js讀寫本地檔案,儘可能多的相容各種瀏覽器。(即本機的js檔案讀寫本機的檔案)問題回覆——1:您的意思是不需要瀏覽器與使用者互動直接操作使用者機上的檔案?不符合瀏覽器的安全標準,屬於瀏覽器的設計缺陷所以瀏
Java解析txt檔案中json資料到List,並存入資料庫
背景:存在一個txt檔案,內容為json資料,格式如下(不是一行一條資料): [{"name":"job","age":39,"occupation":"doctor"},{"name":"tom","age":30,"occupation":"tea
java解析txt檔案
public class TestLine { static int lineNumber = 0; public static void main(String[] args) { try { Buff
java讀取txt檔案並解析其內容
package readtext;/* @author wb @great forever i think,therefor i am */ import java.io.BufferedReader; import java.io.FileInputStream; import java
讀取bson檔案——JavaScript讀取/解析bson檔案並存至txt檔案
由於最近專案需要,不得不讀取 .bson 檔案,網上都是讀取 json 的,關於 bson 的幾乎沒有!!折騰了兩天,最終整理出個路子,如下: 首先是通過 JavaScript 讀取的,為啥要用這個語言,不知道不清楚不瞭解!!!好吧,實際上是 libbson(C++)沒搞出來,一沒文件,二沒帖子,看原始碼也
Java讀取1G以上的txt檔案,並對內容進行解析,利用BufferedReader設定快取大小
讀取檔案路徑 ,讀入 使用帶緩衝的輸入輸出流,效率更高,速度更快。建立一個內部緩衝區陣列並將其儲存在 buf 中,該buf的大小預設為8192。 File file = new File(filepath); BufferedInputStream fis = ne
unity中解析excel匯出的txt檔案
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; /// <summary> /// 武器 /// </summary> [Ser
爬取網站前1_解析網站robots.txt檔案
使用爬蟲爬取資料前,我們需要解析網站robots.txt檔案,以避免下載禁止爬取的url。這項工作需要使用python3自帶的urllib.robotparser模組 #使用爬蟲爬取資料前,我們需要解析網站robots.txt檔案 import urllib.robot
java 解析txt,conf 檔案
@SuppressWarnings("unchecked") public String[] readfile(String filepath) throws Exception { FileReader fr = new FileReader(filepath);
txt檔案解析簡易框架
構建資料表基類 using System.Collections; using System.Collections.Generic; using UnityEngine; using Syste
生成和解析txt文件
stat zha 上海 查找內容 list lose list() checked types package txt; import java.io.BufferedReader; import java.io.File; import java.io.File
Python讀寫txt檔案時的編碼問題
這個問題來自於一個小夥伴,他在處理中文資料時需要先把裡面的文字過濾然後分詞,因為裡面有許多符號,不僅是中文標點符號,還有✳,emoji等奇怪的符號。 正常情況下,中文的str經過encode('utf-8')變成bytes,然後bytes經過decode('utf-8')變回中文。 原始檔案是
Huanent.Logging.File 寫入日誌到txt檔案
sp.net core微軟官方為日誌提供了原生支援,有如下實現 Console Debug EventLog AzureAppServices TraceSource EventSource 並且在asp.net core專案模板中預設開啟Comsole,Debug的日誌輸出
python處理行列分明的txt檔案
Rock_path="/media/gfq/dataset/Lakh MIDI Data/dataset/Rock.txt" 行列明顯分離: with open(Rock_path) as f: Rock=[line.split() for line in f] 按行列讀取你需要
c++中txt檔案的讀取以及在MFC中讀取txt座標資料並完成圖形繪製
主要介紹如何讀取txt檔案中的座標資料,並在MFC視窗中繪製出來,工程建立方法和繪圖方法與上一篇博文基本一致,這裡就不再詳贅述,可參考上一篇博文vs2010、MFC視窗中繪製點、線、面。 C++中讀取檔案的方法有兩種,一種是來自於C語言的“檔案指標”方法,另一種是C++中的“檔案流”思想。
python flask 解析配置檔案與寫日誌
test.conf [kafka]kafka_sys_topic = test-sys-infokafka_sys_group = test-consumer-groupzookeeper_server = 192.168.1.1:2181,192.168.1.2:2181,192.168.1
C#讀取txt檔案並畫圖
tools.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; us
輸入輸出流的讀取輸出 .txt 檔案的 中文亂碼問題 未解決
package interview; import java.io.*; public class TestInOrOutStream { public static void main(String[] args) { int c; try { I