public void ReadFromFile_thread() { //读取数据 // inputFileStream = new FileStream(_path, FileMode.Open); byte[] bs = File.ReadAllBytes(Datas.PublicOpinionAnaPath); MemoryStream ms = new MemoryStream(bs); //StreamReader sr = new StreamReader(); ms.Read(bs, 0, bs.Length); LinkedList <SinaJSON> list = new LinkedList <SinaJSON>(); SinaJSON item = new SinaJSON(); binFormatter.Binder = new 微博舆论.BlogReader.UBinder(); string[] sp = Datas.ads_word.Split(','); ms.Position = 0; // while (inputFileStream.Position < inputFileStream.Length) while (ms.Position < ms.Length) { // item = (SinaJSON)binFormatter.Deserialize(inputFileStream); item = (SinaJSON)binFormatter.Deserialize(ms); Datas.temp_data.Add(item); Datas.auto_read.Set(); } Datas.auto_read.Set(); //inputFileStream.Close(); ms.Close(); }
public BlogReader(string path) { binFormatter = new BinaryFormatter(); sinaJSON = new SinaJSON(); _path = path; _content = ""; requestCounter = 0; }
public BlogReader() { binFormatter = new BinaryFormatter(); sinaJSON = new SinaJSON(); _path = "temp4.dat"; _content = ""; requestCounter = 0; }
/// <summary> /// 从文件读取数据 /// </summary> /// <returns>List<SinaJSON></returns> public List <SinaJSON> ReadFromFile() { //读取数据 inputFileStream = new FileStream(_path, FileMode.Open); List <SinaJSON> list = new List <SinaJSON>(); SinaJSON item = new SinaJSON(); binFormatter.Binder = new UBinder(); while (inputFileStream.Position < inputFileStream.Length) { Datas.Value = (int)(Convert.ToDouble(inputFileStream.Position) / inputFileStream.Length * 100); item = (SinaJSON)binFormatter.Deserialize(inputFileStream); list.Add(item); } Datas.Value = (int)(inputFileStream.Position / inputFileStream.Length) * 100; inputFileStream.Close(); return(list); }
private string _path; //文件保存位置 #endregion Fields #region Constructors public BlogReader() { binFormatter = new BinaryFormatter(); sinaJSON = new SinaJSON(); _path = "temp4.dat"; _content = ""; requestCounter = 0; }
public void ReadFromFile_thread() { //读取数据 // inputFileStream = new FileStream(_path, FileMode.Open); byte[] bs = File.ReadAllBytes(Datas.PublicOpinionAnaPath); MemoryStream ms = new MemoryStream(bs); //StreamReader sr = new StreamReader(); ms.Read(bs, 0, bs.Length); LinkedList<SinaJSON> list = new LinkedList<SinaJSON>(); SinaJSON item = new SinaJSON(); binFormatter.Binder = new 微博舆论.BlogReader.UBinder(); string[] sp = Datas.ads_word.Split(','); ms.Position = 0; // while (inputFileStream.Position < inputFileStream.Length) while (ms.Position < ms.Length) { // item = (SinaJSON)binFormatter.Deserialize(inputFileStream); item = (SinaJSON)binFormatter.Deserialize(ms); Datas.temp_data.Add(item); Datas.auto_read.Set(); } Datas.auto_read.Set(); //inputFileStream.Close(); ms.Close(); }
/// <summary> /// 从文件读取数据 /// </summary> /// <returns>List<SinaJSON></returns> public List<SinaJSON> ReadFromFile() { //读取数据 inputFileStream = new FileStream(_path, FileMode.Open); List<SinaJSON> list = new List<SinaJSON>(); SinaJSON item = new SinaJSON(); binFormatter.Binder = new UBinder(); while (inputFileStream.Position < inputFileStream.Length) { Datas.Value = (int)(Convert.ToDouble(inputFileStream.Position) / inputFileStream.Length * 100); item = (SinaJSON)binFormatter.Deserialize(inputFileStream); list.Add(item); } Datas.Value = (int)(inputFileStream.Position / inputFileStream.Length) * 100; inputFileStream.Close(); return list; }
/// <summary> /// 将json数据转换存入List<SinaJson>中 /// </summary> /// <param name="Sj">ref List<SinaJSON></param> /// <param name="json_str">要转换的字符串</param> public void ConvertStr(string json_str) { int count = Datas.sinaJSONList.Count - 1; //当前长度 //int countSame=0; //重复个数 List <SinaJSON> tempSj = new List <SinaJSON>(); JObject javascript = (JObject)JsonConvert.DeserializeObject(json_str); JArray ja = (JArray)javascript["statuses"]; SinaJSON _Sj; for (int i = 0; i < ja.Count; i++) { _Sj = new SinaJSON(); JObject obj = (JObject)ja[i]; _Sj.Created_at = SinaJSON.GMT2Local(obj["created_at"].ToString()); _Sj.Id = Convert.ToInt64(obj["id"].ToString()); _Sj.Mid = obj["mid"].ToString(); _Sj.Idstr = obj["idstr"].ToString(); _Sj.Text = obj["text"].ToString(); _Sj.Source = obj["source"].ToString(); _Sj.Favorite = Convert.ToBoolean(obj["favorited"]); _Sj.Trunctated = Convert.ToBoolean(obj["truncated"]); _Sj.In_reply_to_status_id = obj["in_reply_to_status_id"].ToString(); _Sj.In_reply_to_user_id = obj["in_reply_to_status_id"].ToString(); JArray pic = (JArray)obj["pic_urls"]; for (int t = 0; t < pic.Count; t++) { JObject pi = (JObject)pic[t]; _Sj.Pic_urls.Add(pi["thumbnail_pic"].ToString()); } JObject user = (JObject)obj["user"]; _Sj.SinaUser.Id = Convert.ToInt64(user["id"].ToString()); _Sj.SinaUser.Idstr = user["idstr"].ToString(); _Sj.SinaUser.Class = Convert.ToInt16(user["class"]); _Sj.SinaUser.Screen_name = user["screen_name"].ToString(); _Sj.SinaUser.Name = user["name"].ToString(); _Sj.SinaUser.Province = user["province"].ToString(); _Sj.SinaUser.City = user["city"].ToString(); _Sj.SinaUser.Location = user["location"].ToString(); _Sj.SinaUser.Description = user["description"].ToString(); _Sj.SinaUser.Url = user["url"].ToString(); _Sj.SinaUser.Profile_image = user["profile_image_url"].ToString(); _Sj.SinaUser.Profile_url = user["profile_url"].ToString(); _Sj.SinaUser.Domain = user["domain"].ToString(); _Sj.SinaUser.Weihao = user["weihao"].ToString(); _Sj.SinaUser.Gender = user["gender"].ToString(); _Sj.SinaUser.Follow_count = Convert.ToInt32(user["followers_count"]); _Sj.SinaUser.Friends_count = Convert.ToInt32(user["friends_count"]); _Sj.SinaUser.Statuses_count = Convert.ToInt32(user["statuses_count"]); _Sj.SinaUser.Favourites_count = Convert.ToInt32(user["favourites_count"]); _Sj.SinaUser.Created_at = SinaJSON.GMT2Local(user["created_at"].ToString()); _Sj.SinaUser.Following = Convert.ToBoolean(user["following"].ToString()); _Sj.SinaUser.Allow_all_act_msg = Convert.ToBoolean(user["allow_all_act_msg"].ToString()); _Sj.SinaUser.Geo_enable = Convert.ToBoolean(user["geo_enabled"].ToString()); _Sj.SinaUser.Verified = Convert.ToBoolean(user["verified"].ToString()); _Sj.SinaUser.Verified_type = Convert.ToInt16(user["verified_type"]); _Sj.SinaUser.Remark = user["remark"].ToString(); _Sj.SinaUser.Ptype = Convert.ToInt16(user["ptype"]); _Sj.SinaUser.Allow_all_comment = Convert.ToBoolean(user["allow_all_comment"].ToString()); _Sj.SinaUser.Avatar_large = user["avatar_large"].ToString(); _Sj.SinaUser.Avatar_hd = user["avatar_hd"].ToString(); _Sj.SinaUser.Verfied_reason = user["verified_reason"].ToString(); _Sj.SinaUser.Follow_me = Convert.ToBoolean(user["follow_me"].ToString()); _Sj.SinaUser.Online_status = Convert.ToInt16(user["online_status"]); _Sj.SinaUser.Bi_followers_count = Convert.ToInt32(user["bi_followers_count"]); _Sj.SinaUser.Lang = user["lang"].ToString(); _Sj.SinaUser.Star = Convert.ToInt16(user["star"]); _Sj.SinaUser.Mbtype = Convert.ToInt16(user["mbtype"]); _Sj.SinaUser.Mbrank = Convert.ToInt16(user["mbrank"]); _Sj.SinaUser.Block_word = Convert.ToInt16(user["block_word"]); _Sj.Reposts_count = Convert.ToInt16(obj["reposts_count"]); _Sj.Comments_count = Convert.ToInt16(obj["comments_count"]); _Sj.Attitudes_count = Convert.ToInt16(obj["attitudes_count"]); _Sj.Mlevel = Convert.ToInt16(obj["mlevel"]); JObject vis = (JObject)obj["visible"]; _Sj.Visiable.List_id = Convert.ToInt16(vis["list_id"]); _Sj.Visiable.Type = Convert.ToInt16(vis["type"]); tempSj.Add(_Sj); } //去重 //所有元素与最后一个元素相比,相同跳出循环 //经过分析,未发现重复元素,所以关闭去重函数 //if (count > 0) //{ // foreach (SinaJSON item in tempSj) // { // countSame++; // if (item.Equals(Datas.sinaJSONList[count])) // break; // } // countSame = tempSj.Count - countSame; // Log.WriteToAll("重复个数:" + countSame); //} for (int i = 0; i < tempSj.Count; i++) { Datas.sinaJSONList.Add(tempSj[i]); using (FileStream outputFileStream = new FileStream("temp" + Datas.FileName + ".dat", FileMode.Append)) { //序列化到文件 BinaryFormatter binFormatter = new BinaryFormatter(); binFormatter.Serialize(outputFileStream, tempSj[i]); outputFileStream.Close(); } } }
/// <summary> /// 将json数据转换存入List<SinaJson>中 /// </summary> /// <param name="Sj">ref List<SinaJSON></param> /// <param name="json_str">要转换的字符串</param> public void ConvertStr( string json_str) { int count = Datas.sinaJSONList.Count - 1; //当前长度 //int countSame=0; //重复个数 List<SinaJSON> tempSj = new List<SinaJSON>(); JObject javascript = (JObject)JsonConvert.DeserializeObject(json_str); JArray ja = (JArray)javascript["statuses"]; SinaJSON _Sj; for (int i = 0; i < ja.Count; i++) { _Sj = new SinaJSON(); JObject obj = (JObject)ja[i]; _Sj.Created_at = SinaJSON.GMT2Local(obj["created_at"].ToString()); _Sj.Id = Convert.ToInt64(obj["id"].ToString()); _Sj.Mid = obj["mid"].ToString(); _Sj.Idstr = obj["idstr"].ToString(); _Sj.Text = obj["text"].ToString(); _Sj.Source = obj["source"].ToString(); _Sj.Favorite = Convert.ToBoolean(obj["favorited"]); _Sj.Trunctated = Convert.ToBoolean(obj["truncated"]); _Sj.In_reply_to_status_id = obj["in_reply_to_status_id"].ToString(); _Sj.In_reply_to_user_id = obj["in_reply_to_status_id"].ToString(); JArray pic = (JArray)obj["pic_urls"]; for (int t = 0; t < pic.Count; t++) { JObject pi = (JObject)pic[t]; _Sj.Pic_urls.Add(pi["thumbnail_pic"].ToString()); } JObject user = (JObject)obj["user"]; _Sj.SinaUser.Id = Convert.ToInt64(user["id"].ToString()); _Sj.SinaUser.Idstr = user["idstr"].ToString(); _Sj.SinaUser.Class = Convert.ToInt16(user["class"]); _Sj.SinaUser.Screen_name = user["screen_name"].ToString(); _Sj.SinaUser.Name = user["name"].ToString(); _Sj.SinaUser.Province = user["province"].ToString(); _Sj.SinaUser.City = user["city"].ToString(); _Sj.SinaUser.Location = user["location"].ToString(); _Sj.SinaUser.Description = user["description"].ToString(); _Sj.SinaUser.Url = user["url"].ToString(); _Sj.SinaUser.Profile_image = user["profile_image_url"].ToString(); _Sj.SinaUser.Profile_url = user["profile_url"].ToString(); _Sj.SinaUser.Domain = user["domain"].ToString(); _Sj.SinaUser.Weihao = user["weihao"].ToString(); _Sj.SinaUser.Gender = user["gender"].ToString(); _Sj.SinaUser.Follow_count = Convert.ToInt32(user["followers_count"]); _Sj.SinaUser.Friends_count = Convert.ToInt32(user["friends_count"]); _Sj.SinaUser.Statuses_count = Convert.ToInt32(user["statuses_count"]); _Sj.SinaUser.Favourites_count = Convert.ToInt32(user["favourites_count"]); _Sj.SinaUser.Created_at = SinaJSON.GMT2Local(user["created_at"].ToString()); _Sj.SinaUser.Following = Convert.ToBoolean(user["following"].ToString()); _Sj.SinaUser.Allow_all_act_msg = Convert.ToBoolean(user["allow_all_act_msg"].ToString()); _Sj.SinaUser.Geo_enable = Convert.ToBoolean(user["geo_enabled"].ToString()); _Sj.SinaUser.Verified = Convert.ToBoolean(user["verified"].ToString()); _Sj.SinaUser.Verified_type = Convert.ToInt16(user["verified_type"]); _Sj.SinaUser.Remark = user["remark"].ToString(); _Sj.SinaUser.Ptype = Convert.ToInt16(user["ptype"]); _Sj.SinaUser.Allow_all_comment = Convert.ToBoolean(user["allow_all_comment"].ToString()); _Sj.SinaUser.Avatar_large = user["avatar_large"].ToString(); _Sj.SinaUser.Avatar_hd = user["avatar_hd"].ToString(); _Sj.SinaUser.Verfied_reason = user["verified_reason"].ToString(); _Sj.SinaUser.Follow_me = Convert.ToBoolean(user["follow_me"].ToString()); _Sj.SinaUser.Online_status = Convert.ToInt16(user["online_status"]); _Sj.SinaUser.Bi_followers_count = Convert.ToInt32(user["bi_followers_count"]); _Sj.SinaUser.Lang = user["lang"].ToString(); _Sj.SinaUser.Star = Convert.ToInt16(user["star"]); _Sj.SinaUser.Mbtype = Convert.ToInt16(user["mbtype"]); _Sj.SinaUser.Mbrank = Convert.ToInt16(user["mbrank"]); _Sj.SinaUser.Block_word = Convert.ToInt16(user["block_word"]); _Sj.Reposts_count = Convert.ToInt16(obj["reposts_count"]); _Sj.Comments_count = Convert.ToInt16(obj["comments_count"]); _Sj.Attitudes_count = Convert.ToInt16(obj["attitudes_count"]); _Sj.Mlevel = Convert.ToInt16(obj["mlevel"]); JObject vis = (JObject)obj["visible"]; _Sj.Visiable.List_id = Convert.ToInt16(vis["list_id"]); _Sj.Visiable.Type = Convert.ToInt16(vis["type"]); tempSj.Add(_Sj); } //去重 //所有元素与最后一个元素相比,相同跳出循环 //经过分析,未发现重复元素,所以关闭去重函数 //if (count > 0) //{ // foreach (SinaJSON item in tempSj) // { // countSame++; // if (item.Equals(Datas.sinaJSONList[count])) // break; // } // countSame = tempSj.Count - countSame; // Log.WriteToAll("重复个数:" + countSame); //} for (int i = 0; i < tempSj.Count; i++) { Datas.sinaJSONList.Add(tempSj[i]); using (FileStream outputFileStream = new FileStream("temp"+Datas.FileName+".dat", FileMode.Append)) { //序列化到文件 BinaryFormatter binFormatter = new BinaryFormatter(); binFormatter.Serialize(outputFileStream, tempSj[i]); outputFileStream.Close(); } } }