Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

fopen

파일 열기 또는 열려 있는 파일에 대한 정보 얻기

설명

예제

fileID = fopen(filename)은 이진 읽기 액세스를 위해 filename 파일을 열고 3보다 크거나 같은 정수 파일 ID를 반환합니다. MATLAB®에서 파일 ID 0, 1, 2는 각각 표준 입력값, 표준 출력값(화면), 표준 오류용으로 예약되어 있습니다.

fopen이 파일을 열 수 없는 경우 fileID-1입니다.

fileID = fopen(filename,permission)permission으로 지정된 액세스 유형으로 파일을 엽니다.

예제

fileID = fopen(filename,permission,machinefmt,encodingIn)은 추가로 machinefmt 인수를 사용하여 파일 내에서 바이트 또는 비트를 읽거나 쓰는 순서를 지정합니다. 선택적 encodingIn 인수는 파일과 연결된 문자 인코딩 체계를 지정합니다.

예제

[fileID,errmsg] = fopen(___)fopen이 파일을 열지 못하는 경우 시스템별 오류 메시지를 추가로 반환합니다. 그렇지 않으면, errmsg에는 빈 문자형 벡터가 반환됩니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

예제

fIDs = fopen('all')은 열려 있는 모든 파일의 파일 ID를 포함하는 행 벡터를 반환합니다. 표준 입력값, 표준 출력값, 표준 오류에 예약된 식별자는 포함되지 않습니다. 벡터 내 요소 개수는 열려 있는 파일의 개수와 동일합니다.

filename = fopen(fileID)는 이전 fopen 호출에서 fileID로 지정된 파일을 열 때 사용한 파일 이름을 반환합니다. 출력 파일 이름은 전체 경로로 확인됩니다. fopen 함수는 출력값을 확인하기 위해 파일에서 정보를 읽지 않습니다.

예제

[filename,permission,machinefmt,encodingOut] = fopen(fileID)는 이전 fopen 호출에서 지정한 파일을 열 때 사용한 권한, 컴퓨터 형식 및 인코딩을 추가로 반환합니다. 파일이 이진 모드에서 열린 경우 permission에는 문자 'b'가 포함됩니다. encodingOut 출력값은 표준 인코딩 체계 이름입니다. fopen은 이러한 출력값을 확인하기 위해 파일에서 정보를 읽지 않습니다. fileID가 유효하지 않으면 모든 출력 인수에는 빈 문자형 벡터가 반환됩니다.

예제

모두 축소

파일을 열고 파일 ID를 fgetl 함수에 전달하여 데이터를 읽습니다.

tsunamis.txt 파일을 열고 파일 ID를 가져옵니다.

fileID = fopen('tsunamis.txt');

fileIDfgetl 함수에 전달하여 파일에서 특정 라인을 읽습니다.

tline = fgetl(fileID)
tline =

  'A global tsunami data set in xlsx format, comprising the following file:'

파일을 닫습니다.

fclose(fileID)

열려는 파일의 이름을 요청하는 프롬프트를 만듭니다. fopen이 파일을 열 수 없는 경우 관련 오류 메시지가 표시되도록 합니다.

fileID = -1;
errmsg = '';
while fileID < 0 
   disp(errmsg);
   filename = input('Open file: ', 's');
   [fileID,errmsg] = fopen(filename);
end

Shift-JIS 문자 인코딩을 사용하여 파일에 쓸 수 있도록 파일을 엽니다.

fileID = fopen('japanese_out.txt','w','n','Shift_JIS');

'w' 입력값은 쓰기 액세스를 지정하고, 'n' 입력값은 네이티브 바이트 순서를 지정하며 'Shift_JIS'는 문자 인코딩 체계를 지정합니다.

fopen을 사용하여 이전에 파일을 열었다고 가정합니다.

fileID = fopen('tsunamis.txt');

모든 열려 있는 파일의 파일 ID를 가져옵니다.

fIDs = fopen('all')
fIDs =

     3

열려 있는 파일에 대한 파일 이름과 문자 인코딩을 가져옵니다. 생략하려는 출력 인수 대신 ~를 사용하십시오.

[filename,~,~,encoding] = fopen(fileID)
filename =

    'matlabroot\toolbox\matlab\demos\tsunamis.txt'


encoding =

    'windows-1252'

여기에 나와 있는 출력값은 일반적인 예일 뿐입니다. 실제 나타나는 결과는 이와 다를 수 있습니다.

입력 인수

모두 축소

열려는 파일의 이름으로, 파일 확장자를 포함하는 문자형 벡터 또는 string형 스칼라로 지정됩니다.

UNIX® 시스템에서 filename'~/' 또는 '~username/'으로 시작되는 경우 fopen 함수에 의해 경로가 각각 현재 사용자의 홈 디렉터리 경로 또는 지정된 사용자의 홈 디렉터리 경로로 전개됩니다.

파일의 위치에 따라 filename은 다음 형식 중 하나가 될 수 있습니다.

현재 폴더 또는 MATLAB 경로의 폴더

filename에 파일의 이름을 지정합니다.

읽기 액세스를 가진 파일을 열었지만 해당 파일이 현재 폴더에 없는 경우 fopen이 MATLAB 검색 경로를 따라 검색합니다.

쓰기 또는 추가(append) 액세스를 가진 파일을 열었지만 해당 파일이 현재 폴더에 없는 경우 fopen이 현재 디렉터리에 파일을 만듭니다.

예: 'sample_file.txt'

다른 폴더

파일이 현재 폴더나 MATLAB 경로의 폴더에 없는 경우, filename에 전체 경로 또는 상대 경로 이름을 지정합니다.

예: 'C:\myFolder\myFile.sample_file.txt'

예: 'myFolder\sample_file.txt'

원격 위치

파일이 원격 위치에 저장된 경우, filename은 다음 형식과 같이 URL(Uniform Resource Locator)로 지정된 파일의 전체 경로를 포함해야 합니다.

scheme_name://path_to_file/my_file.ext

원격 위치에 따라 scheme_name은 다음 표에 있는 값 중 하나가 될 수 있습니다.

원격 위치scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

클라우드 파일 시스템을 사용 중인 경우에는 원격 파일 시스템과 통신할 수 있도록 환경 변수를 설정하십시오. 자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

HDFS(Hadoop Distributed File System) 볼륨에 있는 파일은 읽기-쓰기 모드로 열 수 없습니다.

예: 's3://bucketname/path_to_file/sample_file.txt'

예: 'myFile.txt'

데이터형: char | string

파일 액세스 유형으로, 문자형 벡터나 string형 스칼라로 지정됩니다. 이진 모드 또는 텍스트 모드로 파일을 열 수 있습니다. UNIX 시스템에서는 이 두 변환 모드의 효과가 동일합니다. 이진 모드로 파일을 열려면 다음 중 하나를 지정하십시오.

'r'

읽기 위한 파일을 엽니다.

'w'

쓰기 위한 파일을 열거나 새로 만듭니다. 기존 내용(있는 경우)을 무시합니다.

'a'

쓰기 위한 파일을 열거나 새로 만듭니다. 데이터를 파일 끝에 추가(append)합니다.

'r+'

읽고 쓰기 위한 파일을 엽니다.

'w+'

읽고 쓰기 위한 파일을 열거나 새로 만듭니다. 기존 내용(있는 경우)을 무시합니다.

'a+'

읽고 쓰기 위한 파일을 열거나 새로 만듭니다. 데이터를 파일 끝에 추가(append)합니다.

'A'

현재 출력 버퍼의 자동 플러시 없이 추가(append)하기 위한 파일을 엽니다.

'W'

현재 출력 버퍼의 자동 플러시 없이 쓰기 위한 파일을 엽니다.

텍스트 모드에서 파일을 열려면 문자 't'permission 인수에 연결하십시오(예: 'rt' 또는 'wt+').

Windows® 시스템의 텍스트 모드에서는 다음이 수행됩니다.

  • 캐리지 리턴과 새 줄(Newline) 문자가 차례로 발생하는 읽기 작업('\r\n')에서는 입력 시 캐리지 리턴이 제거됩니다.

  • 쓰기 작업은 출력의 모든 새 줄(Newline) 문자 앞에 캐리지 리턴을 삽입합니다.

MATLAB에서 파일을 쓴 다음 Microsoft® 메모장 또는 '\n'이 새 줄 시퀀스로 인식되지 않는 기타 텍스트 편집기에서 열려면 텍스트 모드에서 파일을 열거나 새로 생성해야 합니다. 파일에 쓸 때에는 각 줄 끝에 '\r\n'을 추가합니다. 예제는 fprintf를 참조하십시오. 그렇지 않을 경우 성능을 높이려면 이진 모드에서 파일을 여십시오.

동일한 파일을 읽고 쓰려면 다음을 수행하십시오.

  • 플러스 기호 '+'가 포함된 permission 값을 사용하여 파일을 엽니다.

  • 읽기 작업과 쓰기 작업 사이에 fseek 또는 frewind를 호출합니다. 예를 들어, fread, fwrite 순서대로 호출하거나, fwrite, fread 순서대로 호출하지 마십시오. 호출해야 할 경우 그 사이에 fseek 또는 frewind를 호출하십시오.

데이터형: char | string

파일에서 바이트 또는 비트를 읽거나 쓰는 순서로, 다음 문자형 벡터 또는 string형 스칼라 중 하나로 지정됩니다.

'n' 또는 'native'

시스템 바이트 순서(디폴트 값)

'b' 또는 'ieee-be'

빅 엔디안 순서

'l' 또는 'ieee-le'

리틀 엔디안 순서

's' 또는 'ieee-be.l64'

빅 엔디안 순서, 64비트 long 데이터형

'a' 또는 'ieee-le.l64'

리틀 엔디안 순서, 64비트 long 데이터형

기본적으로, 현재 지원되는 플랫폼은 모두 새 파일에 리틀 엔디안 순서를 사용합니다. 기존의 이진 파일은 빅 엔디안 또는 리틀 엔디안 순서를 사용할 수 있습니다.

데이터형: char | string

fscanf, fprintf, fgetl, fgets, fread, fwrite를 포함하여 후속 읽기 및 쓰기 작업에 사용할 문자 인코딩으로, 문자형 벡터나 string형 스칼라로 지정됩니다. 문자형 벡터나 string형 스칼라는 다음과 같은 표준 문자 인코딩 체계의 이름을 포함해야 합니다.

"Big5"

"ISO-8859-1"

"windows-874"

"Big5-HKSCS"

"ISO-8859-2"

"windows-949"

"CP949"

"ISO-8859-3"

"windows-1250"

"EUC-KR"

"ISO-8859-4"

"windows-1251"

"EUC-JP"

"ISO-8859-5"

"windows-1252"

"EUC-TW"

"ISO-8859-6"

"windows-1253"

"GB18030"

"ISO-8859-7"

"windows-1254"

"GB2312"

"ISO-8859-8"

"windows-1255"

"GBK"

"ISO-8859-9"

"windows-1256"

"IBM866"

"ISO-8859-11"

"windows-1257"

"KOI8-R"

"ISO-8859-13"

"windows-1258"

"KOI8-U"

"ISO-8859-15"

"US-ASCII"

 

"Macintosh"

"UTF-8"

 

"Shift_JIS"

 

읽기를 위해 파일을 열 때 인코딩 체계를 지정하지 않으면 fopen은 자동 문자 집합 감지를 사용하여 인코딩을 확인합니다. 쓰기를 위해 파일을 열 때 인코딩 체계를 지정하지 않으면 fopen은 데이터 손실이나 손상 없이 모든 플랫폼과 로캘 간 상호 운용성을 제공하기 위해 기본적으로 UTF-8을 사용하도록 설정됩니다. 자세한 내용은 로우 레벨 I/O 함수를 사용하여 텍스트 데이터 파일 가져오기 항목을 참조하십시오.

지원되는 값 목록에 포함되지 않은 인코딩 값을 지정하는 경우 MATLAB은 경고를 발생시킵니다. 다른 인코딩 이름을 항상이 아닌 가끔씩만 지정하면 올바른 결과가 생성될 수 있습니다.

데이터형: char | string

열려 있는 파일의 파일 ID로, 정수로 지정됩니다.

데이터형: double

  • 대부분의 경우 파일을 반드시 텍스트 모드에서 열 필요는 없습니다. MATLAB 가져오기 함수, 모든 UNIX 응용 프로그램, Microsoft Word 및 워드패드에서는 '\n'을 새 줄 표시자로 인식합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | | | | | | |