如何按指定字节长度读取文本文件

问题描述

在一个有1000字节的txt文件中包含有中文和英文.第10位开始有几个不确定数量的中文字符我用Reader.ReadToEnd()读的话中文只算一个字节.所以每次读取第31位的时候读取的字符总是不正确.不知道错在哪里了代码如下:StreamReaderobjReader=newStreamReader(strFileName,Encoding.Default);strText=Reader.ReadToEnd();strTemp=strText.Substring(31,13);而且每次读取的Reader.ReadToEnd的长度也因为中文字符的数量不一样导致字符数量不一样.

解决方案

解决方案二:
问题应该在这里:StreamReaderobjReader=newStreamReader(strFileName,Encoding.Default);先确定你的文件编码是什么,如果是UTF8,就使用Encoding.UTF8,GBK的用Encoding.GetEncoding("GBK").你不妨自己定义一个字符串,含中英文,Substring方法不会把中文拆开的,所以是你提取字符串时编码设置问题。

时间: 2024-10-30 04:05:40

如何按指定字节长度读取文本文件的相关文章

Java小例子:按指定的编码读取文本文件内容

InputStreamReader 的构造函数提供了一个参数,用于指定通过什么编码将 读取到的字节流转换成字符.下面是一个例子: 01./** 02. * 读取指定的文本文件,并返回内容 03. * 04. * @param path 文件路径 05. * @param charset 文件编码 06. * 07. * @return 文件内容 08. * 09. * @throws IOException 如果文件不存在.打开失败或读取失败 10. */ 11.private static S

JS判断字符串字节长度(自动识别中英文)

你早晚会用到的,用CSS来控制文字长度毕竟不是什么需求都能满足,现在后台也不管字符长度截取了,只能用JS来截取字符串了.  代码如下 复制代码 /**  * 返回字符的字节长度(汉字算2个字节)  * @param {string}  * @returns {number}  */   var getByteLen = function (val) {     var len = 0;     for (var i = 0; i < val.length; i++) {         if (

c#读取字节数-c#读取text每一行的字节长度

问题描述 c#读取text每一行的字节长度 现一个text文档中有十行数据,当一行的数据超过指定字节数时,将这一行提取出来,求大神给个程序 解决方案 var query = File.ReadAllLines("你的文档文件名").Where(x => System.Text.Encoding.你用的编码.GetBytes(x).Count() > 指定字节数); foreach (string s in query) Console.WriteLine(s); 解决方案二

PowerShell读取文本文件指定行内容的方法_PowerShell

本文介绍一个PowerShell中如何一步到位的获取到一个文本文件的第N行.比如一个文本文件,它有1000行,我想把第500行的内容直接取出来的,最简单的方法是通过PowerShell来实现. 在PowerShell中,可以通过Get-Content这个cmdlet来获取文本文件的内容.Get-Content将一个文本文件读取到一个数组中,每一个数组元素就是文件的一行内容.比如一个文本文件内容如下: 复制代码 代码如下: 111 222 333 那么,使用Get-Content获取到一个数组,数

效率较高的php下读取文本文件的代码[原创]_php技巧

 fread :以字节位计算长度,按照指定的长度和次数读取数据,遇到结尾或完成指定长度读取后停止.  fgets :整行读取,遇到回车换行或结尾停止.在文本方式时使用. 读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中, 函数调用的形式为: fgets(字符数组名,n,文件指针): 其中的n是一个正整数. 表示从文件中读出的字符串不超过 n-1个字符. 在读入的最后一个字符后加上串结束标志'\0'. 例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-

java 无损读取文本文件

Java 如何无损读取文本文件呢? 以下是有损的 Java代码   @Deprecated       public static String getFullContent(File file, String charset) {           BufferedReader reader = null;           if (!file.exists()) {               System.out.println("getFullContent: file("

用vbs读取文本文件的最后一行_vbs

问: 您好,脚本专家!如何仅读取文本文件的最后一行? -- BM 答: 您好,BM.如果您曾经想知道您好,脚本专家!与其它每日专栏(比如,知心姐姐)的不同之处,那么,下面是一种途径.假设有人在给知心姐姐的信中说: 知心姐姐: 我的生活一团糟,我需要采取一些措施来应对.我如何能扭转我的生活并且重新快乐起来? 绝望之人于代顿 知心姐姐绝不会给绝望之人这样的答复: 亲爱的绝望之人: 唉,您的生活不能变好了.很抱歉. 那么,您认为脚本专家会如何答复您关于读取文本文件的最后一行呢?答对了: 亲爱的 BM:

在ASP.NET页中读取文本文件

asp.net 简介 在现实世界中,人们经常希望能够把某个文本文件的部分或全部内容保存到一个 Web 网页变量中.在经典的 ASP 中,只要简单地使用 FileSystemObject 就能做到了.其实,在 ASPFAQs.com 中就有一个 FAQ 栏目专门讨论 FileSystemObject . 可是在 ASP.NET 中呢?FileSystemObject 当然还可以用,不过,经验表明这么做会严重影响服务器性能.因此,最好还是使用 .NET 框架本身提供的类来读取文件.本文要介绍的是如何

ASP入门教程-读取文本文件

一.读取文本文件的步骤如下: 1.创建 FileSystemObject 对象实例: <% Set fso=Server.CreateObject("Scripting.FileSystemObject") %> 2.使用FileSystemObject对象的OpenTextFile方法返回一个 TextStream 对象实例: <% Set txtFile=fso.OpenTextFile(filename[, iomode[, create[, format]]]