Voglio fare un metodo che prende qualsiasi file e lo legge come una matrice di 0 e 1, cioè il suo codice binario. Voglio salvare quel codice binario come un file di testo. Mi potete aiutare? Grazie.Come leggere il file binario in C#?
risposta
versione veloce e sporco:
byte[] fileBytes = File.ReadAllBytes(inputFilename);
StringBuilder sb = new StringBuilder();
foreach(byte b in fileBytes)
{
sb.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
}
File.WriteAllText(outputFilename, sb.ToString());
@Andrey: vedere "veloce e sporco". Ovviamente, in produzione, qualcosa che utilizza i flussi di file sarebbe molto meglio. La parte importante è la conversione da byte a stringhe binarie. –
Bene, la lettura non è difficile, basta usare FileStream per leggere un byte []. La conversione in testo non è in genere possibile o significativa a meno che non converti gli 1 e gli 0 in esadecimale. È facile farlo con l'overload BitConverter.ToString (byte []). In genere si desidera eseguire il dump di 16 o 32 byte in ogni riga. È possibile utilizzare Encoding.ASCII.GetString() per provare a convertire i byte in caratteri. Un esempio di programma che fa questo:
using System;
using System.IO;
using System.Text;
class Program {
static void Main(string[] args) {
// Read the file into <bits>
var fs = new FileStream(@"c:\temp\test.bin", FileMode.Open);
var len = (int)fs.Length;
var bits = new byte[len];
fs.Read(bits, 0, len);
// Dump 16 bytes per line
for (int ix = 0; ix < len; ix += 16) {
var cnt = Math.Min(16, len - ix);
var line = new byte[cnt];
Array.Copy(bits, ix, line, 0, cnt);
// Write address + hex + ascii
Console.Write("{0:X6} ", ix);
Console.Write(BitConverter.ToString(line));
Console.Write(" ");
// Convert non-ascii characters to .
for (int jx = 0; jx < cnt; ++jx)
if (line[jx] < 0x20 || line[jx] > 0x7f) line[jx] = (byte)'.';
Console.WriteLine(Encoding.ASCII.GetString(line));
}
Console.ReadLine();
}
}
Grazie per la risposta. Hmmm .. qualcosa non sembra funzionare, dato che non sto ottenendo lo 0 e l'1. Invece, sto ottenendo lo stesso effetto come se avessi scelto di aprire un file nel blocco note. – Boris
Sì, lo sono, sono codificati in esadecimale. Non è la stessa cosa che vedresti nel blocco note. Backgrounder: http://en.wikipedia.org/wiki/Hexadecimal –
Questo metodo legge il file, puoi fornire un metodo che scrive il file binario nel file o scrive i dati binari nel file, quindi converte in esadecimale per rileggere il file come lo hai qui? – shawn
È possibile utilizzare BinaryReader per leggere ciascuno dei byte, quindi utilizzare BitConverter.ToString(byte[]) per scoprire come ciascuno è rappresentato in binario.
È quindi possibile utilizzare questa rappresentazione e write in un file.
Grazie per la risposta. – Boris
Utilizzo semplice FileStream.Read
quindi stampare con Convert.ToString(b, 2)
Grazie per la risposta. – Boris
- 1. come leggere efficientemente un file binario in un vettore C++
- 2. Leggere e scrivere int in un file binario in C++
- 3. C# - Come faccio a leggere e scrivere un file binario?
- 4. leggere un file binario (python)
- 5. Leggere un file binario in una matrice
- 6. Come leggere il file XML in C#?
- 7. Come leggere il file binario con un nome file unicode C++?
- 8. FlatBuffers: scrivere e leggere dal file binario?
- 9. come scrivere correttamente il vettore sul file binario in C++?
- 10. Qual è il metodo migliore per leggere un doppio da un file binario creato in C?
- 11. Come leggere un file binario in c? (video, immagini o testo)
- 12. VB - Come faccio a leggere e scrivere un file binario?
- 13. Leggere file json in C++
- 14. Come leggere il contenuto di un file binario in una stringa in Clojure?
- 15. C# continua a leggere il file
- 16. Lettura di un file binario in Java vs C++
- 17. file binario a stringa
- 18. Può Fortran leggere i byte direttamente da un file binario?
- 19. Come verificare se il file è un file binario e leggere tutti i file che non lo sono?
- 20. Scrivi file binario in Ruby
- 21. C# - Lettore binario in Big Endian?
- 22. Come leggere il file CSV in Android?
- 23. Android: come leggere il file in byte?
- 24. Come leggere il file Avro in PySpark
- 25. Come leggere il file Excel in Scala
- 26. Come leggere il file gzip in Scala
- 27. Come leggere il file pickle?
- 28. Come verificare se il file è binario?
- 29. Non riesco a leggere mysql log binario
- 30. Ruby: come determinare se il file da leggere è binario o testo
La tua domanda non è chiara. Come dovrebbero essere esattamente i due file? – SLaks
Penso che voglia archiviare lo schema di bit di un file in un file di testo. – Oded
Il file sorgente è binario o codificato (testuale, sia come ASCII, UTF-8, UTF-16, ecc.)? In altre parole, se apri il file in un editor di testo come Blocco note, vedi degli zeri e uno? – Pat