C#循环读取文件流,按行读取

public Dictionary<string,string> GetSourceDisksElements(String section)
{
        section = "[" + section;
        Dictionary<string, string> keyToValue = new Dictionary<string, string>();
        //打开文件流,开始读取文件
        using (StreamReader sin = new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)))
        {
                for (String str = sin.ReadLine(); str != null; str = sin.ReadLine())
                {
                    if (str.Trim().StartsWith(section, StringComparison.OrdinalIgnoreCase)) //some section has comment.
                    {
                        for (str = sin.ReadLine(); str != null && !str.Trim().StartsWith("["); str = sin.ReadLine()) //loop for get string, until to next section or end of file.
                        {
                            if (!String.IsNullOrEmpty(str.Trim()) && !str.Trim().StartsWith(";"))  //drop the comment line and empty line. //去掉name-value对的限制,因为存在无=的情况。20100309.str.Contains(‘=‘) &&  only get the name-value pair line.
                            {
                                String[] keyValues = str.Split(‘=‘);
                                if (section.Equals("[SourceDisksNames"))
                                {
                                    string[] noCommentValues = keyValues[1].Split(‘;‘);
                                    string realValue = noCommentValues[0].Trim();

                                    String[] sourceDiskCfg = realValue.Split(‘,‘);  //disk-description[,[tag-or-cab-file],[unused],[path],[flags][,tag-file]]  (tag-file : Windows XP and later versions of Windows)
                                    String diskpath = String.Empty;
                                    if (sourceDiskCfg.Length > 3)
                                        diskpath = sourceDiskCfg[3].Trim();

                                    if (diskpath.StartsWith("\""))
                                        diskpath = RemoveQuotes(diskpath);

                                    if (!String.IsNullOrEmpty(diskpath) && diskpath.StartsWith("."))
                                        diskpath = diskpath.Substring(diskpath.IndexOf(‘\\‘));

                                    //20150112
                                    if (!String.IsNullOrEmpty(diskpath) && !diskpath.StartsWith("\\"))
                                        diskpath = "\\" + diskpath;

                                    keyToValue.Add(keyValues[0].Trim(), diskpath);
                                }
                                else
                                {

                                    string[] noCommentValues = keyValues[1].Split(‘;‘);
                                    string realValue = noCommentValues[0].Trim();
                                    keyToValue.Add(keyValues[0].Trim(), realValue);
                                }
                            }
                        }
                        break;
                    }
                }
            }
            return keyToValue;
        }

时间: 2024-10-18 06:48:04

C#循环读取文件流,按行读取的相关文章

Java利用内存映射文件实现按行读取文件

我们知道内存映射文件读取是各种读取方式中速度最快的,但是内存映射文件读取的API里没有提供按行读取的方法,需要自己实现.下面就是我利用内存映射文件实现按行读取文件的方法,如有错误之处请指出,或者有更好更快的实现方式麻烦也提供一下代码. 代码如下: public class testMemoryMappedFile { public static void main(String[] agrs) throws IOException{ RandomAccessFile memoryMappedFi

文件_ _android从资源文件中读取文件流并显示的方法

======== 1   android从资源文件中读取文件流并显示的方法. 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private void doRaw(){ InputStream is = this.getResources().openRawResource(R.raw.ziliao); try{ doRead(is); }catch(IOException e){ e.printStackTrace(); } } pri

编写程序实现读取文件前几行

1 #编写程序实现读取文件前几行 2 def print_line(file_name): 3 line = int(input('请输入要显示前几行:')) 4 f = open(file_name) 5 for each_line in range(0,line): 6 print(f.readline()) 7 8 file_name = input('请输入要打开的文件名:') 9 print_line(file_name)

java读取文件最后N行

原文:java读取文件最后N行 源代码下载地址:http://www.zuidaima.com/share/1550463669226496.htm 指定行数,可以获取到从这行到文件尾的所有行,分享自大熊. 源文件: 读取最后10行结果 import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.List

python之从文件中按行读取数据

#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'jiangwenwen' # 从文件中按行读取数据 file = open("D:\坚果云\我的坚果云\\2019年计划.txt") while 1: lines = file.readlines(100000) if not lines: break for line in lines: print(line) 原文地址:https://www.cnblogs.c

c++ 读取文件 最后一行读取了两次

用ifstream的eof(),竟然读到文件最后了,判断eof还为false.网上查找资料后,终于解决这个问题. 参照文件:http://tuhao.blogbus.com/logs/21306687.html 在使用C/C++读文件的时候,一定都使用过eof()这个函数来判断文件是否为空或者是否读到文件结尾了,也会在使用这个函数的过程中遇到一些问题,如不能准确的判断是否为空或者是否到了文件尾,以至于有些人可能还会怀疑这个函数是不是本身在设计上就有问题. 先来看看如下这段代码: #include

java 读取文件流

搬运自速学堂:https://www.sxt.cn/Java_jQuery_in_action/ten-iqtechnology.html JAVA中IO流体系: 四大IO抽象类 ·InputStream 此抽象类是表示字节输入流的所有类的父类.InputSteam是一个抽象类,它不可以实例化. 数据的读取需要由它的子类来实现.根据节点的不同,它派生了不同的节点流子类 . 继承自InputSteam的流都是用于向程序中输入数据,且数据的单位为字节(8 bit).       常用方法: int

【幻化万千戏红尘】qianfengDay20-java基础学习:数据流、随机读取文件流RandomAccessFile

课程回顾: 流:转换流:字符和字节的转换对象流(Object):序列化,反序列化 打印流(Print):打印各种数据类型的数据 今日内容:数据流(Data):支持将基本数据类型写出,字节流,处理流1.DataOutputStream:数据输出字节流常用方法:writeXXX:写出基本数据类型的数据writeUTF:写出字符串2.DataInputStream:数据输入字节流常用方法:readXXX:读取基本数据类型的数据readUTF:读取字符串 随机读取文件类:拥有写出和读取基本数据类型的方法

c# 读取文件流

1.获取文件路径 2.编写读取路径文件信息 private string ReadFileStream(string filePath) { string strContent = string.Empty; FileStream fs = new FileStream(filePath, FileMode.Open); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); strContent = Enc