.Net快速获取网络文本文件最后一段文字-小应用
场景
现在公司的测试环境一些文本日志不让接触,提供一个网络http服务器让人直接访问,这文件大时,一般10MB一个文件,不在同一局域网,网速限制200K,要等很久,访问很慢。
.Net代码请求文本文件最新内容(类似于tail文件)
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
while (true)
{
//var FileLength = 0L;
//var sPosstion = 0;
int CompletedLength = 0;
var filePath = ConfigurationManager.AppSettings["txtfilepath"].ToString();
Console.WriteLine("网络txt文件路径:{0}", filePath);
var lengthRequest = (HttpWebRequest)HttpWebRequest.Create(filePath);
lengthRequest.Method = "HEAD";//只获取文件头,不获取内容,速度快
var ContentLength = ((HttpWebResponse)lengthRequest.GetResponse()).ContentLength;
try
{
lengthRequest.Abort();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
var getLastLength = Convert.ToInt32(ConfigurationManager.AppSettings["getLastLength"].ToString());
HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(filePath);
if (ContentLength > getLastLength)
{
myRequest.AddRange((int)(ContentLength - getLastLength));//设置Range值
}
//向服务器请求,获得服务器的回应数据流
HttpWebResponse webResponse = (HttpWebResponse)myRequest.GetResponse();
//FileLength = webResponse.ContentLength + sPosstion;//文件大小=已下载的+服务器返回的
Stream myStream = webResponse.GetResponseStream();
byte[] btContent = new byte[getLastLength];
//Save();//保存下载信息
if ((CompletedLength = myStream.Read(btContent, 0, getLastLength)) > 0)
{
Console.WriteLine(Encoding.UTF8.GetString(btContent));
// FStream.Write(btContent, 0, CompletedLength);
//DownloadedLength += CompletedLength;
//if (BeStop == true) break;
}
else
{
Console.WriteLine("无内容");
}
//FStream.Close();
myStream.Close();
Console.WriteLine("最后刷新时间:"+DateTime.Now.ToString("yyyy-MM-dd HH:m:ss.fff"));
Console.WriteLine("\r\n---------按任意键刷新----------");
Console.ReadKey();
Console.Clear();
}
}
}
}
config文件配置:
<appSettings>
<add key="txtfilepath" value="http://www.text.com/Info/Info.log"/>
<add key="getLastLength" value="2048"/>
</appSettings>
运行效果,不到1秒就出来了,刷新快
.Net快速获取网络文本文件最后一段文字-小应用的更多相关文章
- linux 系统获取网络ip, mask, gateway, dns信息小程序
net_util.c #define WIRED_DEV "eth0" #define WIRELESS_DEV ...
- android开发获取网络状态,wifi,wap,2g,3g.工具类(一)
android开发获取网络状态整理: package com.gzcivil.utils; import android.content.Context; import android.net.Con ...
- QT在linux下获取网络类型
开发中遇到这样一个需求,需要判断当前网络的类型(wifi或者4G或者网线),在这里给大家一块分享下: 1.这里有一个linux指令:nmcli(大家自行百度即可) 2.nmcli device sta ...
- android 获取网络类型名称2G 3G 4G wifi
首先工程Manifest文件要引用: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ...
- iOS 获取网络状态
在iOS开发者,获取网络状态比较常用 -(NSString *)getNetWorkStates{ UIApplication *app = [UIApplication sharedApplicat ...
- MS SQLSERVER中如何快速获取表的记录总数
在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等.我们通常的做法是:select count(*) as c from tableA .然而对 ...
- Android 通过广播获取网络状态
Android系统网络连接状态的改变会发一个广播,注册一个广播接收者,实时动态的检测网络状态,及时提醒用户,优化用户体验. 本文仅提供WIFI 状态的检测作为参考,其他网络连接方式请 ...
- JS快速获取图片宽高的方法
快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括IE低版本浏览器. 我们一步一 ...
- Android架构:用消息机制获取网络数据
网络请求,不管是什么协议,是长连接还是短连接,总是一个异步的请求,过程包括:加请求参数->发起请求->接收响应->解析数据->获得业务数据. 最挫的做法是,业务代码包揽所有这些 ...
随机推荐
- 20145327 《Java程序设计》第二周学习总结
20145327 <Java程序设计>第二周学习总结 教材学习内容总结 JAVA类型:基本类型与类类型(也称参考类型). 基本类型分为:整数(short,int,long).字节(byte ...
- Fatal error compiling: java.lang.NoSuc hFieldError??
用了两天时间,试了各种方法,问题最终解决.是JDK的版本问题:Maven3.5不支持jdk-9.0.1,最后退回:jdk1.8.0_151,问题圆满解决!! [ERROR] Failed to exe ...
- Html基本用法
hmtl hyper text markup language 超文本标记语言 超文本:超越一般的文本 变色 加粗 变大 甚至设置超链接 标记:浏览器已经定义好的 一些由尖括号括起来的特殊符号 语言 ...
- hdfs的FileSystem实例化
前言 在spark中通过hdfs的java接口并发写文件出现了数据丢失的问题,一顿操作后发现原来是FileSystem的缓存机制.补一课先 FileSystem实例化 FileSystem.get(c ...
- Flask-最简单的Python http服务框架使用
环境准备 Python + pip + Flask sudo easy_install pip sudo pip install flask 代码如下(做了个jieba分词的服务) # encodin ...
- javascript脚本程序执行消耗的时间
console.time方法是开始计算时间,console.timeEnd是停止计时 // 启动计时器 console.time('time'); // (写一些测试用代码) // 停止计时,输出时间 ...
- Centos7.2 FastDFS_V5.05 集群的安装与配置1
环境: Centos 7.2/64位 两台服务器 都为tracker 和 storage 10.100.0.1 storage tracker10.100.0.2 storage tracker ...
- Swoft 快速上手小贴士
IDE一定要装注解插件PHP Annotations Request和Response里的with...开头的方法会clone $this, 而不是修改本实体, 所以设置Cookie之类的时候要$re ...
- js删除数组中某一项或几项的几种方法
1:js中的splice方法 splice(index,len,[item]) 注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 inde ...
- Mac OSX 如何在命令行中生成 md5、sha1、sha256 校验和
计算 MD5 校验和 md5 /tmp/hello.txt 计算 SHA-1 校验和 shasum -a 1 /tmp/hello.txt 计算 SHA-256 校验和 shasum -a 256 / ...