Tag: streamreader

对来自流读取器的过滤数据执行小计

编辑为问题没有答案 我有一个基于1个标准的过滤输出(前3个数字是110,210或310,给3个不同的组)来自streamreader的控制台。 问题编辑,因为第一个答案是我给出的具体例子的文字解决方案,我使用的真正字符串是450个ASCII字符长。 我已经调整了示例字符串来解决这个问题,对样本数据起作用的任何东西都可以解决我的问题。 所以我真正需要的是,根据前3个数字,可以从预先指定的已知位置取3个字母(对于210,它将是字符插槽14-16然后将其用作子类别,总结所有条目在字符槽33-37中,输出那些)。 示例字符串: 210!!!!123244AAA75AWEHUIHJUAS!!!11111 210???1223455ABC76554HJHSDFQ????22222 210–32455623ABCFFCDGHDSFAS—–33333 310 1232451 2ABC34 GAERsASDFASDG1234523 44444 310 1234a354GDSAASDR 3 AAA GF234523653hfdssdgSDASDF 11111 310 12378HJK1234 ABC HJHJK123462 ASDHDFS FA REW 22222 4101111ASDJF 1ABCASF D1234 ASGF66666 4102222QW12362ER2 ABC 23459876HJKXC 11111 41033333T123 1RWE AAA ASDFHJKRTR WQ 22222 在这结束时,我的输出将是: 210 AAA 11111 210 ABC 55555 310 ABC 66666 310 AAA 11111 […]

C#StreamReader使用分隔符保存到Array

我有一个带有制表符分隔数据的文本文件。 我在C#应用程序中需要的是我从文本文件中读取一行并将它们保存到一个数组中,在每个文件中将它们分开。 然后我对下一行做同样的事情。 我的代码: StreamReader sr = new StreamReader(dlg.FileName); string s = sr.ReadLine(); 现在,我已经尝试将该行写入数组,但这不起作用。 有人怎么管理这个?

程序问题从Unity转到HoloLens – 无法从’string’转换为’System.IO.Stream’

我有一个使用C#在Unity中编写的程序,它初始化一个新的StreamReader并继续从我存储在Unity资源文件夹中的文本文件中读取文本数据。 当我在Unity中单击播放时,一切正常,并且文本被完美地读取和显示。 但是,当我尝试构建它以便通过HoloLens模拟器(平台:Windows Store,SDK:Universal 10,构建和运行:本地机器)运行它时,我收到错误:错误CS1503:参数1:无法转换从’string’到’System.IO.Stream’。 我不明白为什么这个错误甚至首先出现,因为StreamReader的构造函数有一个接受字符串参数的重载。 我的代码如下: string metadata = String.Format(“/Resources/…/metadata.txt”, list); if (File.Exists(Application.dataPath + metadata)) { using (StreamReader sr = new StreamReader(Application.dataPath + metadata)) { // …. } }

StreamReader Read方法不读取指定的字符数

我必须解析一个大文件,而不是做: string unparsedFile = myStreamReader.ReadToEnd(); // takes 4 seconds parse(unparsedFile); // takes another 4 seconds 我想利用前4秒,并尝试通过以下方式同时做两件事: while (true) { char[] buffer = new char[1024]; var charsRead = sr.Read(buffer, 0, buffer.Length); if (charsRead < 1) break; if (charsRead != 1024) { Console.Write("Here"); // debuger stops here several times why? } addChunkToQueue(buffer); } 这是debuger的图像:(我添加了int counter来显示我们读取的迭代次数小于1024字节) 请注意,其中643个字符读取而不是1024.在下一次迭代中,我得到: 我想我应该一直读取1024个字节,直到我到达最后一次迭代,其中重新定义的字节小于1024。 […]

C# – FileStream:既可以锁定文件又可以在不截断文件的情况下读取文件并将其截断

我想我的标题不是那么清楚。 我会试着解释一下: 我可以使用FileStream编写和读取文件 FileStream fs = new FileStream(“C:\\Users\\Public\\text.txt”, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); private void button1_Click(object sender, EventArgs e) { fs.Seek(0,0); StreamReader sr = new StreamReader(fs); textbox.Text = sr.ReadToEnd(); } private void button2_Click(object sender, EventArgs e) { StreamWriter sw = new StreamWriter(fs); sw.Write(textbox.Text); sw.Flush(); } 这种方式其他程序无法使用该文件,但我也无法删除内容。 写入它只会添加字符串,它不会替换内容。 或者我可以在没有FileStream的情况下完成: private void button1_Click(object sender, EventArgs e) { StreamReader sr […]

C#阅读网页内容Streamreader

我需要在streamreader中阅读网页内容 www.example.com 我懂了: System.IO.StreamReader StreamReader1 = new System.IO.StreamReader(“www.example.com”); string test = StreamReader1.ReadToEnd(); 但我然后我得到这个错误代码 尝试访问该方法失败:System.IO.StreamReader..ctor(System.String)

执行流程链

public void ExecuteProcessChain(string[] asProcesses, string sInRedirect, string sOutRedirect) { Process p1 = new Process(); p1.StartInfo.UseShellExecute = false; p1.StartInfo.RedirectStandardOutput = true; p1.StartInfo.FileName = asProcesses[0]; p1.Start(); StreamReader sr = p1.StandardOutput; string s, xxx = “”; while ((s = sr.ReadLine()) != null) Console.WriteLine(“sdfdsfs”); //xxx += s+”\n”; p1.StartInfo.RedirectStandardInput = true; p1.StartInfo.RedirectStandardOutput = false; p1.StartInfo.FileName = asProcesses[1]; p1.Start(); StreamWriter sw […]

如何在ShareDenyWrite模式下打开StreamReader?

如何使用FILE_SHARE_READ , FILE_SHARE_WRITE , FILE_SHARE_DELETE打开StreamReader ? 同样的问题,略有扩展 如何打开StreamReader以便我可以读取带有共享选项的编码文本文件,以便其他进程可以读取该文件? 如何打开StreamReader以便我可以读取带有共享选项的编码文本文件,以便其他进程可以在我阅读时修改该文件? 我如何打开StreamReader以便我可以读取带有共享选项的编码文本文件,以便在我阅读时另一个进程可以删除该文件? 同样的问题,稍微扩大一点 在.NET Framework类库中,有一个名为StreamReader的类。 它是唯一一个用于读取“text”的类 ,这就是为什么它来自抽象基类TextReader类。 TextReader/StreamReader允许您指定您尝试打开的文件所使用的编码,并可以为您解码文件,返回文本Strings 。 一旦我用StreamReader打开了一个文件: var sr = new StreamReader(path); 文件被锁定,其他进程无法修改或删除该文件。 我需要的是相当于FileStream类的FileShare枚举: 无 :拒绝共享当前文件。 在文件关闭之前,任何打开文件的请求(通过此进程或其他进程)都将失败。 读取 “:允许随后打开文件进行读取。如果未指定此标志,则打开文件进行读取(通过此进程或其他进程)的任何请求都将失败,直到文件关闭。但是,即使此标志为如果指定,则可能仍需要其他权限才能访问该文件。 写入 :允许随后打开文件进行写入。 如果未指定此标志,则在文件关闭之前,任何打开文件进行写入(通过此进程或其他进程)的请求都将失败。 但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。 ReadWrite :允许随后打开文件进行读写。 如果未指定此标志,则在文件关闭之前,任何打开文件以进行读取或写入(通过此进程或其他进程)的请求都将失败。 但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。 删除 :允许后续删除文件。 除此之外,由于显而易见的原因,我无法使用FileStream – 必须使用StreamReader 。 如何使用FileShare.ReadWrite | FileShare.Delete打开StreamReader FileShare.ReadWrite | FileShare.Delete ?

C# – StreamReader.ReadLine无法正常工作!

简单地说,我一直在尝试实现BufferedStreamReader在Java中的function。 我有一个套接字流打开,只想以线为导向的方式逐行阅读。 我有以下服务器代码。 while (continueProcess) { try { StreamReader reader = new StreamReader(Socket.GetStream(), Encoding.UTF8); string command = reader.ReadLine(); if (command == null) break; OnClientExecute(command); } catch (Exception e) { Console.WriteLine(e.ToString()); } } 以下客户端代码: TcpClient tcpClient = new TcpClient(); try { tcpClient.Connect(“localhost”, serverPort); StreamWriter writer = new StreamWriter(tcpClient.GetStream(), Encoding.UTF8); writer.AutoFlush = true; writer.WriteLine(“login>user,pass”); writer.WriteLine(“print>param1,param2,param3”); } catch […]

无法从传输连接读取数据:控制台应用程序中的连接已关闭错误

我在控制台应用程序中有这个代码,它在一个循环中运行 try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(search); request.Headers.Add(“Accept-Language”, “de-DE”); request.Method = “GET”; request.Accept = “text/html”; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII)) { string html = reader.ReadToEnd(); FindForMatch(html, url); } } } catch (Exception ex) { throw new Exception(ex.Message); } 经过几次循环就给出了 无法从传输连接读取数据:连接已关闭 错误。 知道为什么会这样吗? 感谢名单..