File.print()
Contenido
Descripción
Escribe (al archivo) un dato mediante la representación textual de su valor, haciendo esta función útil para archivos de texto plano (ej.: .txt, .csv).
Si el "cursor" está posicionado al final del archivo (o alcanza dicho punto en el proceso), esta función lo hará crecer lo necesario para que todos los datos sean escritos. El tope de este crecimiento está en el espacio libre del "volumen" o al alcanzar los 4 GB (4294967295 bytes) de tamaño.
Si este "cursor" no está posicionado al final del archivo, entonces esta función sobrescribirá datos existentes (a partir de la posición actual); lo que hace un tanto difícil editar de esta manera texto en el archivo (imagínalo como un editor de texto dónde la tecla de retroceso no funciona, siempre en modo sobrescribir sin que se pueda cambiar al típico modo insertar, y que cada salto de línea en medio de algo borre dos caracteres en la nueva línea).
Nota: ya que es una implementación de Stream, los detalles mencionados en Stream.print() y Serial.print() también aplican aquí.
Sintaxis
File archivo = SD.open("archivo.txt", FILE_WRITE); archivo.print(cadena); archivo.print(variable[, formato]);
Parametros
- cadena
- Un string o String. También se valen literales (texto entrecomillado) y constantes F().
- variable
- variable a evaluar. Esta variable puede ser de cualquier tipo.
- formato
- por defecto es DEC, pero puedes también usar HEX, OCT o BIN. También puede ser un valor del 0 al 7 si variable es un punto flotante, representaría la cantidad de cifras decimales a imprimir (2 por defecto).
Tip: Equivaldría al File.write() de un solo byte si variable es de tipo char.
Retorna
La cantidad de caracteres que se llegaron a escribir en el proceso (int). Puede fallar si el archivo no puede crecer, si no está abierto o no fue abierto para escritura.
Comentarios
Los literales de caracteres y cadenas también pueden representar caracteres especiales que son difíciles o imposibles de expresar de otra manera en el código fuente de un programa, como "nueva linea" (\n) o "tab" (\t). Estos caracteres especiales son todos precedidos por un carácter de barra diagonal inversa (\).
Código | Descripción | ASCII | DEC |
---|---|---|---|
\n | nueva línea | LF | 10 |
\r | retorno de carro | CR | 13 |
\t | tabulacion horizontal | HT | 9 |
\v | tabulacion vertical | VT | 11 |
\b | retroceso | BS | 8 |
\f | salto de página | FF | 12 |
\a | alerta (pitido) | BELL | 7 |
\' | comilla simple | ' | 39 |
\" | comillas dobles | " | 34 |
\? | signo de interrogación | ? | 63 |
\\ | barra invertida | \ | 47 |
Advertencias
- Esta función siempre fallará si la instancia representa un directorio o carpeta.
Ejemplo
// Loggear lecturas analógicas
while (!digitalRead(boton)) {
archivo.println(analogRead(A0)); // Ya sé que no es print() exactamente, pero se usa de la misma manera.
}
archivo.close();
Vea también