JavaRush /Java Blog /Random-KO /바이트. 파일에서 무엇을 읽고 있나요?
Roman
레벨 33

바이트. 파일에서 무엇을 읽고 있나요?

Random-KO 그룹에 게시되었습니다
일반적으로 이는 초보자를 위한 정보입니다. 파일에서 정보를 읽는 주제가 나왔을 때 다음과 같은 질문이 생겼습니다. 파일에 문자가 포함되어 있으면 왜 파일에서 숫자를 바이트 형식으로 읽으며 이 경우 바이트는 무엇입니까? 바이트가 무엇인지는 이미 여기에 꽤 잘 기록되어 있습니다.. 하지만 읽은 후에도 문자를 숫자로 변환하는 메커니즘에 대한 의문이 여전히 남아 있었기 때문에 인터넷에서 좀 더 깊이 파헤쳐 봐야했습니다. 따라서 아래에 적힌 내용은 추가사항으로 간주될 수 있습니다. 컴퓨터는 각 파일을 이진 형식의 0과 1로 구성된 정보로 저장합니다. 각 파일은 실제로 서로 이어지는 바이트 모음입니다. 일반적으로 정보 파일에는 텍스트 파일과 바이너리 파일의 두 가지 유형이 있습니다. 텍스트 파일에는 인간이 읽을 수 있는 일반적인 문자 집합이 포함되어 있으며 텍스트 편집기에서 열 수 있습니다. 바이너리 파일은 일상생활에서 익숙하지 않은 문자들로 구성되어 있으므로 이를 읽을 수 있는 특별한 프로그램이 필요합니다. 텍스트 파일은 문자, 숫자 및 기타 일반 문자로 구성됩니다. 이러한 파일의 확장자는 .txt, .py, .csv 등입니다. 이러한 파일을 열면 단어를 구성하는 일반적인 문자 집합을 볼 수 있습니다. 실제로 이 콘텐츠는 컴퓨터 내부에 이러한 형식으로 저장되지 않습니다. 비트 형식, 즉 0 또는 1로 저장됩니다. 다양한 인코딩 테이블에서 ASCII, UNICODE 또는 각 문자의 다른 값은 이진 형식으로 정의됩니다. 따라서 바이트가 256개의 문자를 보유할 수 있는 경우 각 문자에는 0과 1의 고유한 이진 인코딩이 있습니다(8개의 연속적으로 쓰여진 0 또는 1은 하나의 문자를 제공합니다). 따라서 파일이 열리면 텍스트 편집기는 각 ASCII 값을 친숙한 문자로 변환하여 일반적인 형식으로 표시합니다. 예를 들어, ASCII 코드의 이진 형식에서 숫자 65는 1000001이며, 이는 라틴어(키릴 문자 아님. 키릴 문자는 위치 192에서 시작) 문자 "A"로 파일에 표시됩니다. 즉, ASCII 시스템에서 값이 1000001인 바이트는 라틴 문자 "A"의 값에 해당합니다. 파일의 각 줄에는 줄 바꿈(EOL(End of Line))이 있습니다. 종종 이 문자(두 문자)는 "\n"(ASCII의 이진 값: 00001010)입니다. 이러한 문자를 읽은 후 프로그램은 이를 줄의 끝과 아래 줄로의 전환으로 해석합니다. 다른 유사한 "기능 기호"가 있습니다. 텍스트 파일과 같은 바이너리 파일은 바이너리 형식으로 저장되지만 이를 디코딩하는 프로그램에 "부착"되지 않습니다. 즉, ASCII 유형의 암호 해독 테이블이 없습니다. 기본적으로 이러한 파일의 내용은 사진, 오디오 및 비디오이며 이는 자체 실행 파일(.exe)과 같은 다른 파일의 압축 버전입니다. 이러한 파일(바이너리)은 일반적인 의미에서 사람이 읽을 수 없으므로 기존 텍스트 편집기로 파일을 열려고 하면 이해할 수 없는 쓰레기 더미가 표시됩니다. 따라서 이러한 파일을 올바르게 읽을 수 있도록 특수 프로그램이 제작됩니다. 바이너리 파일도 일련의 바이트로 저장되는데, 이 경우 한 비트라도 변경하면 전체 파일을 읽을 수 없게 될 수 있습니다. ASCII 문자 테이블은 여기에서 볼 수 있습니다.. 따라서 파일을 읽을 때 8개의 문자(1 또는 0)가 바이트 변수로 읽혀지고, 메모장과 같은 일부 프로그램에서 읽을 수 있는 문자로 변환될 수 있습니다. 이를 이해하는 데 도움이 된 소스 입니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION