标签: streamwriter

使用StreamWriter将行附加到文件

我想在我的文件中附加行.我正在使用StreamWriter:

StreamWriter file2 = new StreamWriter(@"c:\file.txt");
file2.WriteLine(someString);
file2.Close();
Run Code Online (Sandbox Code Playgroud)

我的文件输出应该是几个字符串彼此相同,但我只有一行,每次运行此代码时都会被覆盖.

有没有办法让StreamWriter附加到现有文件?

c# streamwriter

162
推荐指数
8
解决办法
36万
查看次数

我应该为流对象调用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);
            }
         }
         writer.Close();
      }
      reader.Close();
   }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我编写了using()构造,自动调用Dispose()每个对象的方法.但我也称之为Close()方法.这样对吗?

请告诉我使用流对象时的最佳做法.:-)

MSDN示例不使用using()构造,并且调用 …

c# idisposable stream streamwriter streamreader

139
推荐指数
6
解决办法
12万
查看次数

FileStream与/差异StreamWriter?

题:

dotnet中的FileStream和StreamWriter有什么不同?

你应该用什么上下文?他们的优势和劣势是什么?

是否可以将这两者合二为一?

c# filestream streamwriter

81
推荐指数
6
解决办法
6万
查看次数

如果文件不存在则创建文件

我需要让我的代码读取文件是否存在创建else附加.现在它正在读取它是否确实存在创建和追加.这是代码:

if (File.Exists(path))
{
    using (StreamWriter sw = File.CreateText(path))
    {
Run Code Online (Sandbox Code Playgroud)

我会这样做吗?

if (! File.Exists(path))
{
    using (StreamWriter sw = File.CreateText(path))
    {
Run Code Online (Sandbox Code Playgroud)

编辑:

string path = txtFilePath.Text;

if (!File.Exists(path))
{
    using (StreamWriter sw = File.CreateText(path))
    {
        foreach (var line in employeeList.Items)
        {
            sw.WriteLine(((Employee)line).FirstName);
            sw.WriteLine(((Employee)line).LastName);
            sw.WriteLine(((Employee)line).JobTitle);
        }
    }
}
else
{
    StreamWriter sw = File.AppendText(path);

    foreach (var line in employeeList.Items)
    {
        sw.WriteLine(((Employee)line).FirstName);
        sw.WriteLine(((Employee)line).LastName);
        sw.WriteLine(((Employee)line).JobTitle);
    }
    sw.Close();
}
Run Code Online (Sandbox Code Playgroud)

}

c# streamwriter

67
推荐指数
5
解决办法
18万
查看次数

将文件写入Web服务器 - ASP.NET

我只想将TextBox控件的内容写入Web服务器目录根目录中的文件...如何指定它?

请记住,我正在本地测试...它一直在将文件写入我的程序文件\ visual studio\Common\IDE目录而不是我的项目目录(我假设root是Web服务器触发的时候) .

我的问题与在web.config中指定正确的位置有关吗?我试过了,但仍然没有...

非常感谢...

protected void TestSubmit_ServerClick(object sender, EventArgs e)
    {
        StreamWriter _testData = new StreamWriter("data.txt", true);
        _testData.WriteLine(TextBox1.Text); // Write the file.
        _testData.Close(); // Close the instance of StreamWriter.
        _testData.Dispose(); // Dispose from memory.       
    }

c# asp.net file streamwriter

44
推荐指数
4
解决办法
14万
查看次数

使用StreamWriter附加文本

这可能是一个非常简单的问题.在C#中,我试图编写一个简单的方法,称为"DebugWrite"方法,将我程序中捕获的任何异常写入本地存储的文本文件中.我当前的代码每次只使用StreamWriter写一个新文件

如何编程以检查文件是否已存在,如果是,则附加到当前文本?IE:

If(~Exist(debug.txt)
{
  Write new debug.txt.
}
else if(exist(debug.txt))
{
  Append new text.
}
Run Code Online (Sandbox Code Playgroud)

c# streamwriter

32
推荐指数
1
解决办法
10万
查看次数

将.NET StreamWriter输出重定向到String变量

我想知道是否可以将StreamWriter输出重定向到变量

就像是

String^ myString;
StreamWriter sw = gcnew StreamWriter([somehow specify myString])
sw->WriteLine("Foo");
Run Code Online (Sandbox Code Playgroud)

那么myString将包含Foo.我想这样做的原因是重用一个复杂的函数.我应该将它重构为一个String返回函数,但它仍然是一个很好的黑客知道

.net streamwriter

31
推荐指数
4
解决办法
4万
查看次数

如何在C#中读取é,â等特殊字符

我无法读到我试过的那些特殊字符

第一种方式#

string xmlFile = File.ReadAllText(fileName);
Run Code Online (Sandbox Code Playgroud)

第二种方式#

FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string s = r.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

但是这两个陈述都不理解那些特殊字符.我该怎么读?

更新###

我也尝试所有编码

string xmlFile = File.ReadAllText(fileName, Encoding. );
Run Code Online (Sandbox Code Playgroud)

但仍然不明白那些特殊的人物.

c# file streamwriter

31
推荐指数
2
解决办法
5万
查看次数

强制StreamWriter更改编码

我正在尝试使用DialogResult和保存文件StringBuilder.在制作文本后,我调用以下代码来保存文件:

    if (dr == DialogResult.OK)
    {

        StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);

        sw.Write(sb.ToString());
        sw.Close();
    }
Run Code Online (Sandbox Code Playgroud)

我试图将第二个参数添加到StreamWriteras,Encoding.UTF8但由于第一个参数是a string而不是a Stream,因此它不会编译它.

如何将该字符串转换为流,以便能够将第二个参数作为编码传递?

这样做的原因,是在我的文字是什么地方我有µ,但是当文件被保存它显示像μ这样µ越来越screwd!

谢谢

c# stringbuilder streamwriter

28
推荐指数
2
解决办法
8万
查看次数

我需要做StreamWriter.flush()吗?

假设这个C#代码:

using (MemoryStream stream = new MemoryStream())
{
    StreamWriter normalWriter = new StreamWriter(stream);
    BinaryWriter binaryWriter = new BinaryWriter(stream);

    foreach(...)
    {
        binaryWriter.Write(number);
        normalWriter.WriteLine(name); //<~~ easier to reader afterward.
    }

    return MemoryStream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 我是否需要在循环内使用flush以保持顺序?
  2. 回归MemoryStream.ToArray()合法吗?我使用using-block作为约定,我担心它会搞砸了.

c# memorystream flush streamwriter

27
推荐指数
1
解决办法
3万
查看次数