Windows

[C#] Bin 파일 읽기 데이터

컨텐츠 정보

본문

1. 100바이트 단위로 끊어서 파일 읽기


private void btn_file_path_Click(object sender, EventArgs e)

{

    OpenFileDialog openFileDlg = new OpenFileDialog();

    openFileDlg.DefaultExt = "bin";

    openFileDlg.Filter = "BIN Files(*.bin)|*.bin";

    openFileDlg.ShowDialog();

    string fileName = "";

    int fsLen = 0;

    int limit = 100;

    if (openFileDlg.FileName.Length > 0)

    {

        fileName = openFileDlg.FileName;

        lbl_path.Text = fileName;

        FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);

        fsLen = (int)fs.Length;

        int count = 0;

        int all_count = 0;

        StringBuilder sb = new StringBuilder();

        byte[] read_buff = new byte[limit];

        while ( (count = fs.Read(read_buff, 0, limit)) > 0)

        {

            

            for(var i = 0; i < count; i++)

            {

                sb.Append(Convert.ToString(read_buff[i], 16).PadLeft(2, '0'));

            }

            all_count += count;

            rtxb_bin.AppendText(sb.ToString() + "\n");

        }

    }

}



2. 한번에 전체 읽기


private void btn_file_path_Click(object sender, EventArgs e)

{

    OpenFileDialog openFileDlg = new OpenFileDialog();

    openFileDlg.DefaultExt = "bin";

    openFileDlg.Filter = "BIN Files(*.bin)|*.bin";

    openFileDlg.ShowDialog();

    string fileName = "";

    int fsLen = 0;

    int limit = 100;

    if (openFileDlg.FileName.Length > 0)

    {

        fileName = openFileDlg.FileName;        

        byte[] fileBytes = File.ReadAllBytes(fileName);

        StringBuilder sb2 = new StringBuilder();


        for (var i = 0; i < fileBytes.Length; i++)

        {

            sb2.Append(Convert.ToString(fileBytes[i], 16).PadLeft(2, '0'));

        }

        rtxb_allbin.AppendText(sb2.ToString());

    }

}


관련자료

댓글 0
등록된 댓글이 없습니다.
알림 0