.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架构:用消息机制获取网络数据
网络请求,不管是什么协议,是长连接还是短连接,总是一个异步的请求,过程包括:加请求参数->发起请求->接收响应->解析数据->获得业务数据. 最挫的做法是,业务代码包揽所有这些 ...
随机推荐
- mysql增加远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
- springboot访问jsp页面
1.新建springboot项目,选择以war包的方式package; image 2.勾选Web模块,DevTools可不选(用作热部署,不影响运行) image 3.创建完成后,项目结构如 ...
- 数据结构——堆(Heap)大根堆、小根堆
目录 Heap是一种数据结构具有以下的特点: 1)完全二叉树: 2)heap中存储的值是偏序: Min-heap: 父节点的值小于或等于子节点的值: Max-heap: 父节点的值大于或等于子节点的值 ...
- Java环境搭建指南
1.1 配置Java环境 1. 下载并安装Jdk1.7或Jdk1.8 http://www.oracle.com/technetwork/java/javase/downloads/index.ht ...
- SPSS t 检验
在针对连续变量的统计推断方法中,最常用的是 t 检验和方差分析两种. t 检验,又称 student t 检验,主要用于样本含量较小(例如n<30),总体标准差未知的正态分布资料.它是用 t 分 ...
- TIME_WAIT和CLOSE_WAIT
先看下三次握手四次挥手的状态变化: 通常会遇到下面两种情况: 服务器保持了大量TIME_WAIT状态 服务器保持了大量CLOSE_WAIT状态 因为linux分配给一个用户的文件句柄是有限的,而TIM ...
- JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果
Ace模板地址:http://code.google.com/p/ace-engine/wiki/AceTemplate(有时会打不开) Ace英文官网:http://wrapbootstrap.co ...
- kindeditor支持flv视频播放方法
打开plugins\media下面的media.js,打开,找到下面的代码: var html = K.mediaImg(self.themesPath + ‘common/blank.gif’, { ...
- Kotlin Android Studio 环境搭建
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源. Kotlin 可以编译成Java字节码,也可以编 ...
- SpringBoot自动配置的实现原理
之前一直在用SpringBoot框架,一直感觉SpringBoot框架自动配置的功能很强大,但是并没有明白它是怎么实现自动配置的,现在有空研究了一下,大概明白了SpringBoot框架是怎么实现自动配 ...