Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#处理文件/字节_C#_Visual Studio_File Io_Io_Byte - Fatal编程技术网

C#处理文件/字节

C#处理文件/字节,c#,visual-studio,file-io,io,byte,C#,Visual Studio,File Io,Io,Byte,我对用c#编辑文件有一些疑问 我已设法将文件读入字节[]。如何获取每个字节的ASCII码并将其显示在表单的文本区域中 另外,如何更改字节,然后将它们写回文件 例如: 我有一个文件,我知道前三个字节是字母。如何将第二个字母改为“A”,然后保存文件 谢谢 我只能假设您想练习按字节向文件写入或从文件写入。你需要了解这个课程,这个课程有很多帮助。要读入一个值,可以将每个字节读入一个字节[]。一旦你有了byte[],它就会像这样 string s = BitConverter.ToString(byteA

我对用c#编辑文件有一些疑问

我已设法将文件读入字节[]。如何获取每个字节的ASCII码并将其显示在表单的文本区域中

另外,如何更改字节,然后将它们写回文件

例如:

我有一个文件,我知道前三个字节是字母。如何将第二个字母改为“A”,然后保存文件


谢谢

我只能假设您想练习按字节向文件写入或从文件写入。你需要了解这个课程,这个课程有很多帮助。要读入一个值,可以将每个字节读入一个字节[]。一旦你有了byte[],它就会像这样

string s = BitConverter.ToString(byteArray);
然后,您可以对字符串值进行调整,以便使用GetBytes方法写回文件

byte[] newByteArray = BitConveter.GetBytes(s);

然后可以将字节写回文件。

如果文件是ASCII码,则每个字节都是ASCII码。将字节的值打印到(比如)标签上,就这么简单

如果您已将文件读入
byte[]文件

label1.Text = file[1].ToString();
要将第二个字母更改为A,请执行以下操作:

file[1] = (byte)'A';

我不确定,我的Mac电脑上没有C#测试

但说真的,如果它是一个文本文件,那么最好将其作为文本读取,而不是作为
字节[]
读取。您可能希望使用
StringBuilder

第一,要:

如果文件也是unicode的话,这也会起作用

然后,您可以获得Unicode值(对于大多数拉丁字符,它与ASCII值相同),如下所示:
int value=(int)myString[5]左右

然后,您可以像这样写回文件:

System.IO.File.WriteAllText("c:\\test.txt", myString);
如果要对文本进行大量修改,应该使用,否则,正常的字符串操作就可以了。

另请参见MSDN上的“File.ReadAllText”、“File.ReadAllLines”、“如何:从文件读取文本”、“如何:将文本写入文件”。
// Read the file as one string.
System.IO.StreamReader myFile =
   new System.IO.StreamReader("c:\\test.txt");

string myString = myFile.ReadToEnd();

myFile.Close();
System.IO.File.WriteAllText("c:\\test.txt", myString);