Questions tagged «streamreader»

21
如何读取嵌入式资源文本文件
如何使用读取嵌入式资源(文本文件)StreamReader并将其作为字符串返回?我当前的脚本使用Windows窗体和文本框,允许用户在未嵌入的文本文件中查找和替换文本。 private void button1_Click(object sender, EventArgs e) { StringCollection strValuesToSearch = new StringCollection(); strValuesToSearch.Add("Apple"); string stringToReplace; stringToReplace = textBox1.Text; StreamReader FileReader = new StreamReader(@"C:\MyFile.txt"); string FileContents; FileContents = FileReader.ReadToEnd(); FileReader.Close(); foreach (string s in strValuesToSearch) { if (FileContents.Contains(s)) FileContents = FileContents.Replace(s, stringToReplace); } StreamWriter FileWriter = new StreamWriter(@"MyFile.txt"); FileWriter.Write(FileContents); FileWriter.Close(); …

7
部署streamreader是否关闭流?
我正在向要发送的方法发送流,在这些方法中,我使用的是二进制读取器/ wrtier。当读取器/写入器被处置using或被未引用处置时,流是否也被关闭? 我将发送BinaryReader / Writer,但我也使用StreamReader(也许我应该解决这个问题。我仅将其用于GetLine和ReadLine)。如果每次关闭写入器/读取器时都关闭流,这将很麻烦。
166 c#  stream  streamreader 

7
如何使用C#查找和替换文件中的文本
到目前为止我的代码 StreamReader reading = File.OpenText("test.txt"); string str; while ((str = reading.ReadLine())!=null) { if (str.Contains("some text")) { StreamWriter write = new StreamWriter("test.txt"); } } 我知道如何查找文本,但是我不知道如何用自己的文本替换文件中的文本。

5
我应该为流对象调用Close()还是Dispose()吗?
类如Stream,StreamReader,StreamWriter等工具IDisposable界面。这意味着,我们可以Dispose()对这些类的对象调用方法。他们还定义了public一种称为的方法Close()。现在,让我感到困惑的是,一旦完成对象我该怎么称呼?如果我都叫我怎么办? 我当前的代码是这样的: using (Stream responseStream = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(responseStream)) { using (StreamWriter writer = new StreamWriter(filename)) { int chunkSize = 1024; while (!reader.EndOfStream) { char[] buffer = new char[chunkSize]; int count = reader.Read(buffer, 0, chunkSize); if (count != 0) { writer.Write(buffer, 0, count); } } …

2
将文件转换为Base64String然后再次返回
标题说明了一切: 我像这样读tar.gz档案 将文件分成字节数组 将这些字节转换为Base64字符串 将该Base64字符串转换回字节数组 将那些字节写回到新的tar.gz文件中 我可以确认两个文件的大小相同(以下方法返回true),但是我无法再提取副本版本。 我想念什么吗? Boolean MyMethod(){ using (StreamReader sr = new StreamReader("C:\...\file.tar.gz")) { String AsString = sr.ReadToEnd(); byte[] AsBytes = new byte[AsString.Length]; Buffer.BlockCopy(AsString.ToCharArray(), 0, AsBytes, 0, AsBytes.Length); String AsBase64String = Convert.ToBase64String(AsBytes); byte[] tempBytes = Convert.FromBase64String(AsBase64String); File.WriteAllBytes(@"C:\...\file_copy.tar.gz", tempBytes); } FileInfo orig = new FileInfo("C:\...\file.tar.gz"); FileInfo copy = …

11
在C#中使用流读取大型文本文件
我有一个可爱的任务,要弄清楚如何处理被加载到应用程序的脚本编辑器中的大文件(就像我们的内部产品的VBA一样,用于快速宏)。大多数文件约为300-400 KB,可以很好地加载。但是,当它们超过100 MB时,该过程将很困难(如您所料)。 发生的情况是将文件读取并推入RichTextBox中,然后进行导航-不必过多担心这一部分。 编写初始代码的开发人员只需使用StreamReader并执行 [Reader].ReadToEnd() 这可能需要一段时间才能完成。 我的任务是分解这段代码,将其分块读取到缓冲区中,并显示一个带有取消它选项的进度条。 一些假设: 大多数文件将为30-40 MB 文件的内容是文本(不是二进制),有些是Unix格式,有些是DOS。 检索到内容后,我们便确定使用了哪种终止符。 一旦加载了RichTextBox中呈现所需的时间,就没有人关心。这只是文本的初始加载。 现在开始提问: 我可以简单地使用StreamReader,然后检查Length属性(即ProgressMax)并发出Read来获取设置的缓冲区大小,并在后台工作程序内的while循环WHILST中进行迭代,以便它不会阻塞主UI线程吗?然后,在完成后将stringbuilder返回到主线程。 内容将转到StringBuilder。如果长度可用,我如何用流的大小初始化StringBuilder? 这些(根据您的专业意见)是好主意吗?过去,我从Streams读取内容时遇到了一些问题,因为它总是会丢失最后几个字节或其他内容,但是如果是这种情况,我会问另一个问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.