使用Stream writer将特定字节写入textfile

use*_*605 7 c# byte text stream

好吧,我正在尝试将一些值和字符串写入文本文件.
但是这个文本文件必须包含2个字节

这些是我在完成向其写入其他值后要插入到我的文本文件中的2个字节:

十六进制

我试过这个方法,但我不知道如何通过它写字节

using (StreamWriter sw = new StreamWriter(outputFilePath, false, Encoding.UTF8))
Run Code Online (Sandbox Code Playgroud)

在把我想要的字符串放到它上面后,我不知道如何将它们写入文本文件.

Bit*_*lue 16

我刚想通了.它对我很有用.我们的想法是使用可以写入字节数组的FileStream打开文件,并在其上面放置StreamWriter来编写字符串.然后你可以使用两者来混合字符串:

// StreamWriter writer = new StreamWriter(new FileStream("file.txt", FileMode.OpenOrCreate));

byte[] bytes = new byte[] { 0xff, 0xfe };
writer.BaseStream.Write(bytes, 0, bytes.Length);
Run Code Online (Sandbox Code Playgroud)


Mea*_*ing 10

如果我从你的问题中回忆正确的话.您想要将字符串写入文件然后将字节写入其中吗?

这个例子将为您做到这一点:

using (FileStream fsStream = new FileStream("Bytes.data", FileMode.Create))
using (BinaryWriter writer = new BinaryWriter(fsStream, Encoding.UTF8))
{
    // Writing the strings.
    writer.Write("The");
    writer.Write(" strings");
    writer.Write(" I");
    writer.Write(" want");
    writer.Write(".");

    // Writing your bytes afterwards.
    writer.Write(new byte[]
                 {
                     0xff,
                     0xfe
                 });
}
Run Code Online (Sandbox Code Playgroud)

使用十六进制编辑器打开"Bytes.data"文件时,您应该看到以下字节: 在此输入图像描述


小智 6

这是寻找解决方案的另一种方法......

StringBuilder sb = new StringBuilder();

sb.Append("Hello!! ").Append(",");
sb.Append("My").Append(",");
sb.Append("name").Append(",");
sb.Append("is").Append(",");
sb.Append("Rajesh");
sb.AppendLine();

//use UTF8Encoding(true) if you want to use Byte Order Mark (BOM)
UTF8Encoding utf8withNoBOM = new UTF8Encoding(false);

byte[] bytearray;

bytearray = utf8withNoBOM.GetBytes(sb.ToString());

using (FileStream fileStream = new FileStream(System.Web.HttpContext.Current.Request.MapPath("~/" + "MyFileName.csv"), FileMode.Append, FileAccess.Write))
{
    StreamWriter sw = new StreamWriter(fileStream, utf8withNoBOM);

    //StreamWriter for writing bytestream array to file document
    sw.BaseStream.Write(bytearray, 0, bytearray.Length);
    sw.Flush();
    sw.Close();

    fileStream.Close();
}
Run Code Online (Sandbox Code Playgroud)