fichero example escribir convertir convert bytes arreglo array archivo c# .net

example - escribir array de bytes en fichero c#



¿Se puede escribir una matriz de bytes[] en un archivo en C#? (8)

Basado en la primera oración de la pregunta: "Estoy tratando de escribir una matriz de Byte [] que representa un archivo completo en un archivo".

El camino de menor resistencia sería:

File.WriteAllBytes(string path, byte[] bytes)

Documentado aquí:

System.IO.File.WriteAllBytes - MSDN

Estoy tratando de escribir una matriz Byte[] representa un archivo completo en un archivo.

El archivo original del cliente se envía a través de TCP y luego lo recibe un servidor. La secuencia recibida se lee en una matriz de bytes y luego se envía para ser procesada por esta clase.

Esto se debe principalmente a garantizar que el TCPClient receptor esté listo para la siguiente transmisión y separar el extremo receptor del final del procesamiento.

La clase FileStream no toma una matriz de bytes como un argumento u otro objeto Stream (lo que le permite escribir bytes en ella).

Mi objetivo es que el procesamiento se realice mediante un subproceso diferente del original (el que tiene el TCPClient).

No sé cómo implementar esto, ¿qué debo intentar?


Hay un método estático System.IO.File.WriteAllBytes


Prueba BinaryReader:

/// <summary> /// Convert the Binary AnyFile to Byte[] format /// </summary> /// <param name="image"></param> /// <returns></returns> public static byte[] ConvertANYFileToBytes(HttpPostedFileBase image) { byte[] imageBytes = null; BinaryReader reader = new BinaryReader(image.InputStream); imageBytes = reader.ReadBytes((int)image.ContentLength); return imageBytes; }



Puede utilizar un objeto 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; }

Edición: Vaya, olvidé la parte final ... digamos que queda como un ejercicio para el lector ;-)


Puedes hacer esto usando System.IO.BinaryWriter que toma un Stream así que:

var bw = new BinaryWriter(File.Open("path",FileMode.OpenOrCreate); bw.Write(byteArray);


Sí, ¿por qué no?

fs.Write(myByteArray, 0, myByteArray.Length);


public ActionResult Document(int id) { var obj = new CEATLMSEntities().LeaveDocuments.Where(c => c.Id == id).FirstOrDefault(); string[] stringParts = obj.FName.Split(new char[] { ''.'' }); string strType = stringParts[1]; Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment; filename=" + obj.FName); var asciiCode = System.Text.Encoding.ASCII.GetString(obj.Document); var datas = Convert.FromBase64String(asciiCode.Substring(asciiCode.IndexOf('','') + 1)); //Set the content type as file extension type Response.ContentType = strType; //Write the file content this.Response.BinaryWrite(datas); this.Response.End(); return new FileStreamResult(Response.OutputStream, obj.FType); }