我正在尝试写出一个Byte[]表示文件完整文件的 数组.
来自客户端的原始文件通过TCP发送,然后由服务器接收.接收到的流被读取到一个字节数组,然后被发送以由该类处理.
这主要是为了确保接收TCPClient为下一个流做好准备并将接收端与处理端分开.
所述FileStream类不采取一个字节数组作为参数或另一个流对象(它允许你写字节到它).
我的目标是通过与原始(使用TCPClient的线程)不同的线程完成处理.
我不知道如何实现这个,我该怎么办?
Kev*_*Kev 699
基于问题的第一句话:"我正在尝试将表示完整文件的Byte []数组写入文件."
阻力最小的路径是:
File.WriteAllBytes(string path, byte[] bytes)
Run Code Online (Sandbox Code Playgroud)
记录在这里:
Tre*_*reb 39
您可以使用BinaryWriter对象.
protected bool SaveData(string FileName, byte[] Data)
{
BinaryWriter Writer = null;
string Name = @"C:\temp\yourfile.name";
try
{
// Create a new stream to write to the file
Writer = new BinaryWriter(File.OpenWrite(Name));
// Writer raw data
Writer.Write(Data);
Writer.Flush();
Writer.Close();
}
catch
{
//...
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
编辑:哎呀,忘记了finally部分...让我们说这是留给读者的练习;-)
Jos*_*rke 11
您可以使用System.IO.BinaryWriterStream 来执行此操作:
var bw = new BinaryWriter(File.Open("path",FileMode.OpenOrCreate);
bw.Write(byteArray);
Run Code Online (Sandbox Code Playgroud)
您可以使用FileStream.Write(byte []数组,int offset,int count)方法将其写出来.
如果您的数组名称是"myArray",那么代码就是.
myStream.Write(myArray, 0, myArray.count);
Run Code Online (Sandbox Code Playgroud)