Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

fopen

Abrir archivo o obtener información sobre archivos abiertos

Descripción

ejemplo

fileID = fopen(filename) abre el archivo, filename, para acceso de lectura binaria y devuelve un identificador de archivo entero igual o superior a 3. MATLAB ® reserva los identificadores de archivo 0, 1y 2 para la entrada estándar, la salida estándar (la pantalla) y el error estándar, respectivamente.

Si fopen no puede abrir el archivo, fileID es -1.

fileID = fopen(filename,permission) abre el archivo con el tipo de acceso especificado por permission.

ejemplo

fileID = fopen(filename,permission,machinefmt,encodingIn) especifica además el orden de lectura o escritura de bytes o bits en el archivo mediante el argumento machinefmt . El argumento opcional encodingIn especifica el esquema de codificación de caracteres asociado al archivo.

ejemplo

[fileID,errmsg] = fopen(___) devuelve además un mensaje de error dependiente del sistema si fopen falla al abrir el archivo. De lo contrario, errmsg es un vector de caracteres vacío. Puede utilizar esta sintaxis con cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

fIDs = fopen('all') devuelve un vector de fila que contiene los identificadores de archivo de todos los archivos abiertos. Los identificadores reservados para la entrada, salida y error estándar no están incluidos. El número de elementos en el vector es igual al número de archivos abiertos.

filename = fopen(fileID) devuelve el nombre de archivo que una llamada anterior a fopen usó cuando abrió el archivo especificado por fileID. El nombre de archivo de salida se resuelve en la ruta completa. La función fopen no lee la información del archivo para determinar el valor de salida.

ejemplo

[filename,permission,machinefmt,encodingOut] = fopen(fileID) devuelve además el permiso, el formato del equipo y la codificación que una llamada anterior a fopen utilizó al abrir el archivo especificado. Si el archivo se abrió en modo binario, permission incluye la letra 'b'. La salida encodingOut es un nombre de esquema de codificación estándar. fopen no lee la información del archivo para determinar estos valores de salida. Un no válidofileID devuelve vectores de caracteres vacíos para todos los argumentos de salida.

Ejemplos

contraer todo

Abra un archivo y pase el identificador de archivo a la función fgetl para leer los datos.

Abra el archivo, airfoil.my obtenga el identificador de archivo.

fileID = fopen('airfoil.m');

Pase el fileID a la función fgetl para leer una línea del archivo. Entonces, cierra el archivo.

tline = fgetl(fileID);
fclose(fileID)

Cree un mensaje para solicitar el nombre de un archivo que se abrirá. Si fopen no puede abrir el archivo, muestre el mensaje de error pertinente.

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

Abra un archivo para escribir en un archivo mediante la codificación de caracteres Shift-JIS.

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

La entrada 'w' especifica el acceso de escritura, la entrada 'n' especifica el pedido de bytes nativos y 'Shift_JIS' especifica el esquema de codificación de caracteres.

Suponga que ha abierto previamente un archivo mediante fopen.

fileID = fopen('airfoil.m');

Obtenga los identificadores de archivos de todos los archivos abiertos.

fIDs = fopen('all')
fIDs =

     3

Obtenga el nombre de archivo y la codificación de caracteres para el archivo abierto. Utilice ~ en lugar de los argumentos de salida que desee omitir.

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

matlabroot\toolbox\matlab\demos\airfoil.m


encoding =

windows-1252

La salida mostrada aquí es representativa. Sus resultados pueden diferir.

Argumentos de entrada

contraer todo

Nombre del archivo que se abrirá, incluida la extensión de archivo, especificada como un vector de fila de caracteres o un escalar de cadena. Si el archivo no está en la carpeta actual, filename debe incluir una ruta de acceso completa o relativa.

En los sistemas UNIX® , si filename comienza con '~/' o '~username/', la función fopenen expande la ruta al directorio de inicio del usuario actual o especificado, respectivamente.

  • Si abre un archivo con acceso de lectura y el archivo no está en la carpeta actual, fopen busca a lo largo de la ruta de búsqueda MATLAB .

  • Si abre un archivo con acceso de escritura o anexa y el archivo no está en la carpeta actual, fopen crea un archivo en el directorio actual.

Ejemplo: 'myFile.txt'

Tipos de datos: char | string

Tipo de acceso a archivos, especificado como un vector de carácter o un escalar de cadena. Puede abrir un archivo en modo binario o en modo texto. En los sistemas UNIX , ambos modos de traducción tienen el mismo efecto. Para abrir un archivo en modo binario, especifique uno de los siguientes.

'r'

Abra el archivo para leer.

'w'

Abra o cree un nuevo archivo para escribir. Deseche los contenidos existentes, si los hubiere.

'a'

Abra o cree un nuevo archivo para escribir. Anexar datos al final del archivo.

'r+'

Abra el archivo para leer y escribir.

'w+'

Abra o cree un nuevo archivo para leer y escribir. Deseche los contenidos existentes, si los hubiere.

'a+'

Abra o cree un nuevo archivo para leer y escribir. Anexar datos al final del archivo.

'A'

Abra el archivo para anexarlo sin purga automática del búfer de salida actual.

'W'

Abra el archivo para escribir sin purga automática del búfer de salida actual.

Para abrir archivos en modo texto, adjunte la letra 't' al argumento permission , como 'rt' o 'wt+'.

En los sistemas Windows® , en modo texto:

  • Las operaciones de lectura que encuentran una devolución de carro seguida de un carácter de nueva línea ('\r\n') quitan el retorno de carro de la entrada.

  • Operaciones de escritura Inserte un retorno de carro antes de cualquier carácter de nueva línea en la salida.

Abra o cree un nuevo archivo en modo texto si desea escribirlo en MATLAB y, a continuación, ábralo en Microsoft® Notepad, o cualquier editor de texto que no reconoce '\n' como un secuencia de nueva línea. Al escribir en el archivo, finalice cada línea con '\r\n'. Para obtener un ejemplo, vea fprintf. De lo contrario, abra los archivos en modo binario para un mejor rendimiento.

Para leer y escribir en el mismo archivo:

  • Abra el archivo con un valor para permission que incluya un signo más, '+'.

  • Use fseek o frewind entre las operaciones de lectura y escritura. Por ejemplo, no llame a la función fread seguida de fwrite, o a fwrite seguida de fread, a menos que llame a la función fseek o frewind entre estas.

Tipos de datos: char | string

Orden para leer o escribir bytes o bits en el archivo, especificados como uno de los siguientes vectores de caracteres o escalares de cadena.

o

El orden de bytes del sistema (predeterminado)

o

Pedidos Big-Endian

o

Little-Endian pedidos

o

Big-Endian pedidos, tipo de datos de 64 bits de largo

o

Little-Endian Ordering, tipo de datos de 64 bits de largo

De forma predeterminada, todas las plataformas soportadas actualmente utilizan el pedido Little-Endian para archivos nuevos. Los archivos binarios existentes pueden utilizar el pedido big-endian o Little-Endian.

Tipos de datos: char | string

Codificación defreadcaracteres a utilizar para operaciones de lectura y escritura subsecuentes, incluyendo fscanf, fprintf, fgetl, fgets, , y fwrite, especificada como un vector de caracteres o un escalar de cadena. El vector de caracteres o la cadena escalar debe contener un nombre de esquema de codificación de caracteres estándar como el siguiente.

'Big5'

'ISO-8859-1'

'windows-847'

'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'

 

Si no especifica un esquema de codificación, fopen abre los archivos para su procesamiento mediante la codificación predeterminada para el sistema. Para obtener más información, vea Abrir archivos con diferentes codificaciones de caracteres.

Si especifica un valor para la codificación que no está en la lista de valores admitidos, MATLAB emite una advertencia. La especificación de otros nombres de codificación a veces (pero no siempre) produce resultados correctos.

Tipos de datos: char | string

Identificador de archivo de un archivo abierto, especificado como un entero.

Tipos de datos: double

Sugerencias

  • En la mayoría de los casos, no es necesario abrir un archivo en modo texto. MATLAB las funciones de importación de ® , todas las aplicaciones UNIX y Microsoft Word y WordPad reconocen '\n' como indicador de nueva línea.

Capacidades ampliadas

Consulte también

| | | | fwritefread fwrite | | | |

Introducido antes de R2006a