标签: streamwriter

为什么StreamWriter不能在Windows服务中运行?

我有这个简单的代码,记录将日志附加到文本文件:

    public static void RecordToFile(string filename, Log log)
    {
            TextWriter textWriter = new StreamWriter(Constants.APP_PATH + 
                "\\" + filename, true);
            textWriter.WriteLine(log.ToString());
            textWriter.Close();
    }
Run Code Online (Sandbox Code Playgroud)

这在Windows窗体应用程序中完美运行.但是,使用instsrv和srvany技巧,我将其作为Windows服务.该服务运行正常,访问数据库,执行查询和所有...除了这个StreamWriter.日志不会得到应有的更新.有什么想法吗?

.net c# service streamwriter

1
推荐指数
1
解决办法
3577
查看次数

为什么.NET Framework StreamReader/Writer默认为UTF8编码?

我只是看StreamReader/Writer的构造函数,我注意它使用UTF8作为默认值.有谁知道这是为什么?我本以为默认使用Unicode会更安全.

.net encoding streamwriter streamreader

1
推荐指数
2
解决办法
1837
查看次数

为什么 StreamWriter 无法访问关闭的流,而 StreamReader 可以?

如果我写以下语句。

fileStream.Close();
reader.Close();
writer.Close();
Run Code Online (Sandbox Code Playgroud)

reader.Close() 语句执行成功。但我收到错误“无法打开关闭的文件”。在第三条语句 writer.Close()

如果我写

fileStream.Close();
writer.Close();
reader.Close();
Run Code Online (Sandbox Code Playgroud)

第二条语句,即 writer.Close() 本身抛出相同的异常。

有人有想法吗?

c# filestream streamwriter streamreader

1
推荐指数
1
解决办法
2772
查看次数

输出文件中没有正确显示C#字母

我在C#工作,这是我的代码:

        Encoding encoding;
        StringBuilder output = new StringBuilder();

        //somePath is string
        using (StreamReader sr = new StreamReader(somePath))
        {
            string line;
            encoding = sr.CurrentEncoding;
            while ((line = sr.ReadLine()) != null)
            {
                //make some changes to line
                output.AppendLine(line);
            }
        }

        using (StreamWriter writer = new StreamWriter(someOtherPath, false))//encoding
        {
            writer.Write(output);
        }
Run Code Online (Sandbox Code Playgroud)

在somePath上的文件中,我有像å这样的挪威字符.但是,在someOtherPath中的文件中,我得到问号而不是它们.我认为这是一个编码问题,所以我尝试获取输入文件编码并将其授予输出文件.它没有结果.我尝试使用谷歌浏览器打开文件并为其提供所有可能的编码,但这些字母与输入文件中的字母不同.

c# encoding streamwriter

1
推荐指数
1
解决办法
4194
查看次数

StreamWriter将所有行传递给文件

C# 我有一个控制台应用程序,可以读取和写入"人员"详细信息的获取/设置列表.它正常工作,直到我尝试将其写入文本文件.有人可以告诉我为什么将"Person"细节的最后一行写入我的文本文件而不是整个列表?

        loadData();

        Console.WriteLine("All People");
        //1st query - just select all people
        var queryAllPeople = from person in people  select person;

        foreach (Person p in queryAllPeople)
        {
            using (StreamWriter writer = new StreamWriter("people.txt"))
            {

                writer.WriteLine(p);

            }
            Console.WriteLine(p);
        }

        Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

c# linq streamwriter

1
推荐指数
2
解决办法
8443
查看次数

将文本文件写入桌面上的文件夹

我想知道如何使用StreamWriter将文本文件写入桌面上的特定位置,例如C:\ Users\tommy\desktop\transaction \?

    private void CreateTransaction_Click(object sender, EventArgs e)
    {
        StreamWriter outputFile;
        outputFile = File.CreateText (TID.ToString()+".txt");

        outputFile.WriteLine("Investor :" +" " + InvestorNameLabel.Text);
        outputFile.WriteLine("Initial Amount" + " " +AmountLabel.Text);
        outputFile.WriteLine("Date Invested" +" " +DateLabel.Text);
        outputFile.WriteLine("Period Chosen" + " "+DaysInvestedLabel.Text);
        outputFile.WriteLine("Rate Chosen" + " " + RateLabel.Text);
        outputFile.WriteLine("Total Interest" + " " +InterestAmountLabel.Text);
        outputFile.WriteLine("Transaction Number :" + " " + TransactionIDLabel.Text);
        outputFile.Close();

        MessageBox.Show("Transaction file for Transaction: " + TransactionIDLabel.Text + "Was Created", "Transaction File");


    }
Run Code Online (Sandbox Code Playgroud)

c# streamwriter

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

如何使用StreamWriter编辑/替换.txt文件中的特定值?

我有我在.txt文件中读取的代码.文本文件包含名字和姓氏的值以及数字.

"丹尼尔""默罗""1234"

我正在尝试使用StreamWriter编辑特定值.但是,我现在的代码编辑整个.txt文件并替换所有内容.我只想替换我的案例中的数字值.

static classMates[] readClassMates(classMates[] classMateInfo)
    {
        StreamReader sr = new StreamReader(@"C:\Users\Callum\Documents\class.txt");
        int count = 0;
        while (!sr.EndOfStream)
        {
            classMateInfo[count].first = sr.ReadLine();
            classMateInfo[count].last = sr.ReadLine();
            string idTemp = sr.ReadLine();
            classMateInfo[count].ID = Convert.ToInt32(idTemp);
            count++;
        }
        sr.Close();
        return classMateInfo;

static void editClassMates(classMates[] classMateInfo)
    {
        Console.Write("Who's number would you like to change? ");
        string classMateInput = Console.ReadLine();
        for (int i = 0; i < classMateInfo.Length; i++)
        {
            if (classMateInfo[i].last.Equals(classMateInput))
            {

                Console.Write("Enter new number: ");
                string temp = Console.ReadLine();
                int classMateNumber = Convert.ToInt32(temp); …
Run Code Online (Sandbox Code Playgroud)

c# streamwriter streamreader

1
推荐指数
1
解决办法
94
查看次数

为什么StreamWriter改变它写入文件的文本?

我有一个用C#编写的类库,用于将错误和其他信息写入文本或日志文件.问题是它在将文本写入文件时正在改变文本.它由vb.net应用程序调用.

应该写的文字: 02-20-2017 08:17:42 - Personality Update() beginning:

实际写的文字: 02-20-2017 08:17:42 - Per42onaliA17 Up20aAe() beA.D.inninA.D.:

下面是调用该方法来写出字符串的代码.

errHandler.AddLineToLogFile(Me.MasterLogFileName, "Personality Update() beginning:")
Run Code Online (Sandbox Code Playgroud)

以下是被调用的方法.

    public void AddLineToLogFile(string logFile, string message, bool replaceExistingFile = false)
    {
        DateTime now = DateTime.Now;
        using (StreamWriter writer = new StreamWriter(logFile, !replaceExistingFile))
        {
            writer.WriteLine(now.ToString("MM-dd-yyyy HH:mm:ss - " + message));
            writer.WriteLine(" ");
        }
    }
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?

c# streamwriter

1
推荐指数
1
解决办法
135
查看次数

如何写入现有的txt文件c#

我创建了一些代码来创建一个带有初始文本的 txt 文件,但是当我尝试使用新的 msg 再次调用该方法时,它不会将其添加到 txt 文件中。下面是我的代码:

string example = "test";
WriteToLgo(example);

public static void WriteToLog(String inputtext)
{
   string location= @"C:\Users\";
   string NameOfFile = "test.txt";
   string fileName= String.Format("{0:yyyy-MM-dd}__{1}", DateTime.Now, NameOfFile);
   string path= Path.Combine(location, fileName);
   using (StreamWriter sr= File.CreateText(path))
   {
      sr.WriteLine(inputtext);
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我再次尝试调用该方法,则不会添加新的 msg。任何帮助将不胜感激。

c# streamwriter

1
推荐指数
1
解决办法
1696
查看次数

附加带退格的字符串时,从文本文件中删除字符

在C#中,是否可以将包含退格的字符串附加到文本文件中,并将所有退格视为"删除最后一个字符"操作?

例如我的文本文件:

这个文件有

两行

某种C#代码是这样的:

string str = "...\b\b\b\b\b\b\b\b\b\b\b\b\b one line."
myFile.Append(str);
Run Code Online (Sandbox Code Playgroud)

执行此代码后,文本文件如下所示:

这个文件有一行.

这些StreamWriterFile类似乎没什么帮助.

如果不在每个附加操作上读取和写入整个文件,我就无法轻易找到实现这一点的好方法,这可能会导致大文本文件出现严重的性能问题.我们的想法是使用这个新功能将日志语句集中写入文本文件.

我的第二个问题是如何处理windows风格的新行字符("\ r \n")?即一个退格键应删除整个单行换行符("\ r \n").

有关如何实现这一点的任何想法?

源代码将受到高度赞赏.

.net c# streamwriter text-files backspace

1
推荐指数
1
解决办法
169
查看次数