Tag: streamreader

如何使用stringbuilder并将其转换为streamReader?

如何使用stringbuilder并将其转换为流? 所以我的stringbuilder必须转换为: StreamReader stream = ???? 更新 我尝试使用stringreader,如: StringReader sr = new StringReader(sb.ToString()); StreamReader stream = new StreamReader(sr); 但那不起作用?

为什么要部署StreamReader会使流不可读?

我需要从开始到结束两次读取一个流。 但是下面的代码抛出了ObjectDisposedException: Cannot access a closed fileexception。 string fileToReadPath = @””; using (FileStream fs = new FileStream(fileToReadPath, FileMode.Open)) { using (StreamReader reader = new StreamReader(fs)) { string text = reader.ReadToEnd(); Console.WriteLine(text); } fs.Seek(0, SeekOrigin.Begin); // ObjectDisposedException thrown. using (StreamReader reader = new StreamReader(fs)) { string text = reader.ReadToEnd(); Console.WriteLine(text); } } 为什么会这样? 什么是真的处置? 为什么操纵StreamReader会以这种方式影响关联的流? 期望可以多次读取可搜索流是不合逻辑的,包括几个StreamReader […]

C#StreamReader,“ReadLine”用于自定义分隔符

获得StreamReader.ReadLine()方法function的最佳方法是什么,但使用自定义(字符串)分隔符? 我想做的事情如下: String text; while((text = myStreamReader.ReadUntil(“my_delim”)) != null) { Console.WriteLine(text); } 我试图使用Peek()和StringBuilder来创建自己的,但效率太低。 我正在寻找建议或可能是一个开源解决方案。 谢谢。 编辑 我应该早点澄清一下……我已经看到了这个答案 ,但是,我不想将整个文件读入内存。

StreamReader ReadLine抛出处置exception而不是返回null

我正在尝试从FTP服务器获取文本文件,然后逐行读取它,将每行添加到列表中。 我的代码似乎符合以下标准模式: var response = (FtpWebResponse)request.GetResponse(); using (var responseStream = response.GetResponseStream()) { using (var reader = new StreamReader(responseStream)) { string line; while((line = reader.ReadLine()) != null) { lines.Add(line); } } } 但是,出于某种原因,当在文件的最后一行调用reader.ReadLine()时,它会抛出一个exception,说“无法访问已处置的对象”。 这真的让我很烦恼。 如果我没记错的话,当没有其他数据时,流的最后一行是null ,对吧? 另外(虽然我不确定这一点),这似乎只在当地发生; 这项服务的现场版本似乎正在顺利进行(虽然有些问题我试图深究)。 我当然不会在日志中看到这个问题。 有人有想法吗? 编辑:这是例外的全文。 System.ObjectDisposedException: Cannot access a disposed object. Object name: ‘System.Net.Sockets.NetworkStream’. at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 […]

如何使用streamreader使用当前编码读取byte

我想用C#读取byte[]和当前的文件编码。 正如在MSDN中编写的那样,当构造函数没有编码时,默认编码将是UTF-8: var reader = new StreamReader(new MemoryStream(data)). 我也试过这个,但仍然把文件作为UTF-8: var reader = new StreamReader(new MemoryStream(data),true) 我需要用当前编码读取byte[] 。

只读一次文件的下一行

我有一个应用程序从文本文件中读取信息,然后对它们进行分类并将它们放到数据库中。 对于一个类别,我需要检查当前行之后的行并查找某个关键字? 我如何阅读这一行? 这个应该在streamreader已经打开当前行时发生…. 我在VS2010上使用c#。 编辑 : 下面的所有代码都是一段时间(!sReader.EndOfStream)循环 string line = sReader.ReadLine(); //Note: this is used way above and lots of things are done before we come to this loop for (int i = 0; i < filter_length; i++) { if (searchpattern_queries[i].IsMatch(line) == true) { logmessagtype = selected_queries[i]; //*Here i need to add a if […]

当Stream.Read()存在时,StreamReader的目的是什么?

这一直困扰着我。 我知道Stream是一个抽象类,因此无法实例化,但它具有从中派生的类。 为什么有StreamReader类和Stream.Read()方法( 反之为StreamWriter和Stream.Write() )? 您可以使用300万种不同的方法写入文本文件,尝试在System.IO命名空间中了解所有这些不同的类型和方法是相当令人沮丧的。 我找到了关于作者和读者对象或派生的流对象本身之间的差异的问题和答案,但没有关于这个特定情况的问题。

检查文件中是否存在字符串

我有以下代码片段,它打开一个文本文件并读取文件中的所有行并将其存储到字符串数组中。 然后检查字符串是否存在于数组中。 然而,我面临的问题是,无论何时找到一个字符串,它总是显示“有匹配”以及“没有匹配”。 知道如何解决这个问题吗? 检查此代码: using (StreamReader sr = File.OpenText(path)) { string[] lines = File.ReadAllLines(path); for (int x = 0; x < lines.Length – 1; x++) { if (domain == lines[x]) { sr.Close(); MessageBox.Show("there is a match"); } } if (sr != null) { sr.Close(); MessageBox.Show("there is no match"); } }

从流读取器读取一行而不消耗?

有没有办法提前读取一行来测试下一行是否包含特定的标签数据? 我正在处理一个具有开始标记但没有结束标记的格式。 我想读一行将它添加到一个结构然后测试下面的行,以确保它不是一个新的“节点”,如果它不是继续添加,如果它关闭该结构并创建一个新的 我能想到的唯一解决方案就是让两个流读取器同时出现在锁定步骤中的那种方式,但这看起来很浪费(如果它甚至可以工作) 我需要像peek但peekline这样的东西

为什么这段代码会在从StreamReader到达第一个ReadLine时挂起?

我在第一个arg中将一个大文件传递给下面的SendXMLFile(),但由于它导致手持设备“挂起”/“冻结”,我暂时硬编码了一个小得多的文件(3 KB而不是1121 KB)用于检测。 该文件确实存在(与.exe / .dll位于同一文件夹中),如下代码所示: // test with smaller file: fileName = “DSD_v6666_3_20140310140737916.xml”; MessageBox.Show(“Made it before file.Open”); using (FileStream fileTest = File.Open(fileName, FileMode.CreateNew)) { fileTest.Write(info, 0, info.Length); fileTest.Flush(); } if (!File.Exists(fileName)) { MessageBox.Show(String.Format(“{0} does not seem to exist”, fileName)); } else { MessageBox.Show(String.Format(“{0} DOES seem to exist”, fileName)); } string justFileName = Path.GetFileNameWithoutExtension(fileName); String […]