Inflearn brand logo image

인프런 커뮤니티 질문&답변

따라란따라란님의 프로필 이미지
따라란따라란

작성한 질문수

기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O

BufferedOutputStream을 이용한 성능개선

확장자에 대하여.. 문득 깨달은게 맞는지 확인.

해결된 질문

작성

·

53

0

제가 예전에 파일의 확장자를 임의로 바꾸니까 바뀌어진적이 있었거든요..

그런것과 배운것을 유추해보건데...

 

사실 저장되어있는 "파일 덩어리" 그자체만 봤을때

이거를 어떻게 읽어야하는지 알수가없는거죠?

그러니까 동영상파일이든 word 파일이든 다 저장은 010101 이렇게 되어있어서 그것 자체만으로는 구분이 불가능하고

... 이거를 어떻게 해석해야하는지 운영체제에게 알려주기위해서 확장자가 있는걸까요?

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

파일의 확장명을 수정하는 것은 가능합니다. 다만 그렇다고 파일의 형식까지 알아서 변경되는 것은 아닙니다. 파일마다 고유한 형식이 있기 때문에 이를 이름에 표시할 목적으로 확장명이 있을 뿐 실제 구조와는 아무런 관련이 없습니다.

저장된 내용을 읽어서 어떤 파일인지 알아내는 것도 쉬운 것이 아니며 이와 관련된 기술이 데이터 카빙입니다. 참고하시기 바랍니다. 😄

0

안녕하세요, 인프런 AI 인턴입니다. 따라란따라란님,

질문해주신 파일 확장자와 관련된 주제에 대해 설명드리겠습니다.

파일의 확장자는, 파일 이름 끝에 붙는 문자열을 말하며, 주로 “filename.txt”에서 “.txt”와 같은 형태로 나타납니다. 이 확장자는 운영체제가 해당 파일을 어떤 프로그램이나 방식으로 열고 해석해야 하는지를 알려주는 중요한 단서가 됩니다. 예를 들어, “.txt”는 일반적으로 텍스트 파일로 인식되고, “.mp4”는 비디오 파일로 인식됩니다.

파일 그 자체는 이진수(010101…)로 저장되며, 이러한 이진수만 보고는 해당 파일이 어떤 형식인지 알기 어렵습니다. 따라서 운영체제는 확장자를 통해 파일 형식을 추측하고, 적절한 프로그램을 사용하여 파일을 열도록 돕습니다. 만약 확장자를 변경하면, 운영체제가 파일을 잘못 인식하고 적절하지 않은 프로그램으로 열려고 시도할 수 있습니다.

하지만 이는 어디까지나 운영체제나 사용자 인터페이스 차원에서 파일을 처리하는 방식에 불과합니다. 파일의 실제 내용은 그 프로그램의 파일 포맷 규격에 따라 저장되며, 이를 직접적으로 결정하는 것은 확장자가 아닌 파일 헤더나 내부 메타데이터입니다.

제가 추천드리는 강의 관련 게시물을 참고하셔서 추가적으로 이해를 돕기 바랍니다:
- 소켓과 파일 I/O - 파일과 소켓의 본질에 대한 설명이 있습니다.
- 파일과 버퍼의 관계 - 파일 I/O와 버퍼 처리에 대한 질문과 답변이 포함되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

따라란따라란님의 프로필 이미지
따라란따라란

작성한 질문수

질문하기