파일을 가져 와서 0과 1, 즉 이진 코드의 배열로 읽는 메소드를 만들고 싶습니다. 그 바이너리 코드를 텍스트 파일로 저장하려고합니다. 너 나 좀 도와 줄 수있어? 감사.C#에서 파일 바이너리를 읽는 방법?
답변
신속하고 더러운 버전으로 인쇄 :
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 : "빠르고 더러운"을 참조하십시오. 분명히, 프로덕션에서는 파일 스트림을 사용하는 것이 훨씬 더 좋을 것입니다. 중요한 부분은 바이트에서 이진 문자열로 변환하는 것입니다. –
음, 읽기는 어렵지 않습니다. FileStream을 사용하여 바이트 []를 읽으십시오. 텍스트로 변환하는 것은 1과 0을 16 진수로 변환하지 않으면 일반적으로 가능하거나 의미가 없습니다. BitConverter.ToString (byte []) 오버로드로 쉽게 할 수 있습니다. 일반적으로 각 행에 16 또는 32 바이트를 덤프하려고합니다. Encoding.ASCII.GetString()을 사용하여 바이트를 문자로 변환 할 수 있습니다. 이 작업을 수행 샘플 프로그램 :
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();
}
}
답변 해 주셔서 감사합니다. 흠 .. 0과 1을 얻지 못해 무언가가 작동하지 않는 것 같습니다. 대신 메모장에서 파일을 열어 본 것과 같은 효과를 얻고 있습니다. – Boris
예, 그들은 16 진수로 인코딩됩니다. 메모장에서 볼 수있는 것과 같은 것이 아닙니다. Backgrounder : http://en.wikipedia.org/wiki/Hexadecimal –
이 메서드는 파일을 읽습니다. 이진 파일을 파일에 쓰거나 이진 데이터를 파일에 쓰고 다음을 16 진수로 변환하는 메서드를 제공 할 수 있습니까? 여기 있니? – shawn
각이 진에 표시되는 방법을 찾아 BitConverter.ToString(byte[])를 사용하여 다음 바이트의 각을 읽을 BinaryReader를 사용할 수 있습니다.
그러면이 표현과 파일에 write을 사용할 수 있습니다.
답변 해 주셔서 감사합니다. – Boris
- 1. C에서 사용자 지정 파일 속성을 읽는 방법 #
- 2. C에서 텍스트 행을 읽는 방법
- 3. C에서 Tesseract를 사용하여 다른 언어를 읽는 방법 #
- 4. C에서 Open Excel 파일을 읽는 방법
- 5. 파일 내용을 읽는 방법
- 6. x86 PE 바이너리를 C에서 decompiling하는 중입니까?
- 7. C에서 텍스트 파일의 여러 줄을 읽는 방법 #?
- 8. getrusage를 사용하여 C에서 페이지 오류를 읽는 방법?
- 9. C에서 FASTA 파일을 읽는 가장 좋은 방법 #
- 10. C에서 소켓 데이터를 읽는 버퍼를 만드는 방법
- 11. 배치 파일 : 파일을 읽는 방법?
- 12. Java에서 파일 바이트를 읽는 방법?
- 13. Java에서 레지스트리를 읽는 방법
- 14. 표준 입력을 C에서 EOF까지 문자열 변수로 읽는 방법?
- 15. C에서 파일 읽기 (/ 쓰기)
- 16. Xcode 4.0에서 바이너리를 생성하는 방법
- 17. Lucene 문서에 바이너리를 연결하는 방법
- 18. 바이너리를 파일 이름없이 7z로 암호화 하시겠습니까?
- 19. Outlook 닉네임 목록 파일 (.NK2) 읽는 방법?
- 20. INI 파일에서 구성 파일 항목을 읽는 방법
- 21. 파일 끝까지 이진 파일을 읽는 방법?
- 22. IpropertyStorage를 사용하여 파일 속성을 읽는 방법?
- 23. .net에서 .csv 파일 확장명을 읽는 방법 C#
- 24. C에서 StackOverflowException을 일으키는 파일 읽기
- 25. 내가 바이너리를
- 26. C에서 scanf()를 사용하여 네거티브 double을 읽는 방법?
- 27. c에서 이진 파일을 읽는 방법? (비디오, 이미지 또는 텍스트)
- 28. C에서 여러 값에 대해 레지스트리를 올바르게 읽는 방법?
- 29. C에서 일반 텍스트 파일 암호화하기
- 30. C에서 동적으로 파일 스트림에서 배열을 채우는 방법
귀하의 질문이 명확하지 않다. 정확히 두 파일이 어떻게 생겼을 까? – SLaks
나는 그가 파일의 비트 패턴을 텍스트 파일에 저장하려고한다고 생각한다. – Oded
원본 파일이 이진이거나 인코딩되어 있습니까 (ASCII, UTF-8, UTF-16 등의 텍스트 형식)? 즉, 메모장과 같은 텍스트 편집기에서 파일을 여는 경우 0과 1이 표시됩니까? – Pat