当前位置: 首页 > news >正文

网站建设 熊掌号seo优化推广业务员招聘

网站建设 熊掌号,seo优化推广业务员招聘,网站建设图片居中代码,网站制作公司网站建设网站带进度的文件复制器 基本原理就是通过Stream的BeginRead来异步复制文件,同时刷新进度条的状态 代码 读取文件的指定行 1、通过StreamReader的Readline 通过StreamReader 读取StreamReader sr new StreamReader("E:\\abc.txt"); Console.Write…

 

带进度的文件复制器

     基本原理就是通过Stream的BeginRead来异步复制文件,同时刷新进度条的状态

 

 

 

 

 

 代码

读取文件的指定行

1、通过StreamReader的Readline

 

ContractedBlock.gifExpandedBlockStart.gif通过StreamReader 读取
            StreamReader sr = new StreamReader("E:\\abc.txt");
            Console.WriteLine(
"Peek读取");
            var
= 0;
            
while (sr.Peek() >= 0)
ExpandedBlockStart.gifContractedBlock.gif            
{
                
if (++== 50000000-1)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    Console.WriteLine(sr.ReadLine());
                    
break;
                }

                
continue;
            }

            sr.Close();

 

2、通过 FileStream.seek()来读取

Seek()方法的定义如下

public override Seek (
offset,
SeekOrigin origin
)
只要知道offset就可以了!
于是我们可以定义一个类,将每行开始的offset找出来,有了每行开始的offset,读取就自然不成问题了
ContractedBlock.gifExpandedBlockStart.gifCode
 public class ReadByLine
ExpandedBlockStart.gifContractedBlock.gif    
{
        
public ReadByLine(string name)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            PositionMap
=new List<long>();
            FileName 
= name;
            Done 
= false;
        }

        
public bool Done
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
get;
            
set;
        }


ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 当前流位置
        
/// </summary>

ExpandedSubBlockStart.gifContractedSubBlock.gif        public long Position getset; }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 文件的行数
        
/// </summary>

ExpandedSubBlockStart.gifContractedSubBlock.gif        public long Lines getset; }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 文件名(包含路径)
        
/// </summary>

ExpandedSubBlockStart.gifContractedSubBlock.gif        public string FileName getset; }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
///  行位置列表
        
/// </summary>

ExpandedSubBlockStart.gifContractedSubBlock.gif        public List<long> PositionMap getset; }

        
private StreamReader sr;
        
private FileStream fs;

ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 打开文件
        
/// </summary>
        
/// <returns></returns>

        public bool Open()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
try
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
//初始化各流
                sr = new StreamReader(FileName);
                InitMap();
                
return true;
            }

            
catch (Exception e)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
return false;
            }

        }


        
private void InitMap()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
      
            Lines 
= 1;
            Position 
= 0;
            
//在地图中加入首条数据的位置信息
            PositionMap.Add(Position);

            
//顺序建立文件地图
            while (sr.Peek()>0)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                var str 
= sr.ReadLine();
                Position 
+=Encoding.UTF8.GetBytes(str).Length+ 2;
                PositionMap.Add(Position);
                Lines
++;
            }

            Done 
= true;
            sr.Close();
        }


        
public string ReadLine(int line)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
bool flag = true;
            var str
="";
            
while (flag)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
if (!Done) continue;
                fs 
= new FileStream(FileName, FileMode.Open);
                fs.Seek(PositionMap[line], SeekOrigin.Begin);
                var reader 
= new StreamReader(fs);
                str 
= reader.ReadLine();
                reader.Close();
                fs.Close();
                flag 
= false;
            }

            
return str;
        }


        
public bool Close()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
try
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
//fs.Close();
                sr.Close();
                
return true;
            }

            
catch
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
return false;
            }

        }

    }

转载于:https://www.cnblogs.com/xiaoqi/archive/2008/09/08/1287050.html

http://www.lbrq.cn/news/2593585.html

相关文章:

  • 帝国cms如何做电影网站今日头条热搜榜前十名
  • 专做商品折扣的网站系统推广公司
  • 虚拟主机网站建设过程可以营销的十大产品
  • 公司网站可以自己建立吗谷歌推广代理公司
  • 信誉好的o2o网站建设百度查重工具
  • 丹东网站建设公司信息发布平台推广有哪些
  • 新疆生产建设兵团科技局网站北京百度推广投诉电话
  • 烟台高端网站建设公司哪家好全球网络营销公司排行榜
  • 沁水做网站湘潭网站seo磐石网络
  • .net做网站之前设置武汉seo学徒
  • wordpress如何设置邮箱网络推广seo公司
  • php自适应网站企业产品推广策划方案
  • 互联网工作工资高吗优化大师最新版下载
  • 东莞厚街网站建设杭州seo网站推广排名
  • 婚纱摄影网站源码5118素材网站
  • 建筑人才网报名平台上海关键词排名优化价格
  • 做商城网站的公司济南做网站推广哪家好
  • 做一电影网站怎么赚钱厦门seo搜索排名
  • 花钱做网站要多少钱网站排名seo培训
  • 在合肥做网站多少钱上海网站快速优化排名
  • 我要开网店网店seo
  • 娄底网站建设做竞价推广大概多少钱
  • 站长工具亚洲中文精品百度指数购买
  • 企业型网站建设怎样收费广州百度快速优化排名
  • 做照明出口的网站优化20条措施
  • 有名的网站制贵阳网站建设制作
  • 免费做网站优化市场营销公司有哪些
  • 摇一摇抽签用什么网站做沈阳网站制作优化推广
  • 明水县网站建设如何建立网站平台
  • wordpress设置缩略图谷歌seo运营
  • 【BUUCTF系列】[极客大挑战 2019]LoveSQL 1
  • Nginx vs Spring Cloud Gateway:限流功能深度对比与实践指南
  • 鸿蒙开发-端云一体化--云数据库
  • 数据集相关类代码回顾理解 | StratifiedShuffleSplit\transforms.ToTensor\Counter
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介
  • 基于springboot的在线考试系统/考试信息管理平台