using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace BitConverter
{
    class Program
    {
        const string fileName = "BitConverter.txt";

        static void Main(string[] args)
        {
            long longValue = 1234567890123456789;
            int intValue = 100;
            string stringValue = "IZONE";

            char[] charArrayValue = stringValue.ToCharArray();

            Console.WriteLine("Default Data");
            Console.WriteLine("----------------------");
            Console.WriteLine(longValue);
            Console.WriteLine(intValue);
            Console.WriteLine(stringValue);
            Console.WriteLine();


            /* Write Start */
            Stream writeStream = new FileStream(fileName, FileMode.Create);
            
            /* Long Test */
            byte[] writeByBytes = BitConverter.GetBytes(longValue);

            Console.WriteLine("Byte Data");
            Console.WriteLine("----------------------");

            Console.Write("Byte : ");

            foreach (var item in writeByBytes)
            {
                /* 2진수 출력 0:X */
                Console.Write("{0:X2} ", item);
            }

            Console.WriteLine();

            writeStream.Write(writeByBytes, 0, writeByBytes.Length);

            /* Integer Test */
            writeByBytes = BitConverter.GetBytes(intValue);

            Console.Write("Byte : ");

            foreach (var item in writeByBytes)
            {
                Console.Write("{0:X2} ", item);
            }

            Console.WriteLine();

            writeStream.Write(writeByBytes, 0, writeByBytes.Length);

            Console.Write("Byte : ");

            /* CharArray Test */
            foreach (var item in charArrayValue)
            {
                byte[] writeByByte = BitConverter.GetBytes(item);

                writeStream.Write(writeByByte, 0, writeByByte.Length - 1);

                Console.Write("{0:X2} ", Convert.ToInt32(item));
            }

            Console.WriteLine("\n");
            writeStream.Close();
            /* Write End */


            /* Read Start */
            FileStream readStream = new FileStream(fileName, FileMode.Open);


            byte[] readBytes = new byte[sizeof(long)];

            readStream.Read(readBytes, 0, readBytes.Length);

            long readLongValue = BitConverter.ToInt64(readBytes, 0);


            readBytes = new byte[sizeof(int)];

            readStream.Read(readBytes, 0, readBytes.Length);

            int readIntValue = BitConverter.ToInt32(readBytes, 0);


            string readStringValue = "";

            readBytes = new byte[readStream.Length];

            readStream.Read(readBytes, 0, readBytes.Length);

            foreach (var item in readBytes)
            {
                readStringValue += (char)item;
            }

            Console.WriteLine("Result Data");
            Console.WriteLine("----------------------");

            Console.WriteLine(readLongValue);
            Console.WriteLine(readIntValue);
            Console.WriteLine(readStringValue);

            readStream.Close();
            /* Read End */
        }
    }
}

----------------------------------------------------
Default Data
----------------------
1234567890123456789
100
IZONE

Byte Data
----------------------
Byte : 15 81 E9 7D F4 10 22 11
Byte : 64 00 00 00
Byte : 49 5A 4F 4E 45

Result Data
----------------------
1234567890123456789
100
IZONE

'프로그래밍 > 코드 정리' 카테고리의 다른 글

[C#] StreamWriter, StreamReader  (0) 2021.04.02
[C#] 성적 정렬 프로그램  (0) 2021.03.29
[C#] 성적 입력 프로그램  (0) 2021.03.25
[C#] 우승할 달리기 선수 맞추기  (0) 2021.03.21
[C#] 성적 프로그램  (0) 2021.03.20
블로그 이미지

NIA1995

,