La clase StreamWriter
La clase StreamWriter
Un objeto StreamWriter realiza operaciones de escritura de texto sobre un archivo. El proceso típico de escritura de datos mediante un StreamWriter, comprende los siguientes pasos:
• Instanciar un objeto de esta clase mediante alguno de los constructores disponibles. Aquí creamos un nuevo archivo para escribir datos sobre él, o abrimos uno existente.
• Escritura de texto mediante los métodos WriteLine( ) y Write( ). El primero escribe el texto pasado como parámetro, y añade los caracteres especiales de retorno de carro y nueva
línea. El segundo escribe el texto pasado y deja el puntero de escritura a partir del último carácter escrito, con lo que no produce un cambio automático de línea. Deberemos utilizar la propiedad NewLine para introducir manualmente un salto de línea.
• Cierre del Stream con el método Close( ). Esta acción vuelca el contenido del búfer del objeto en el archivo.
© Grupo EIDOS 27. Operaciones de entrada y salida (I/O). Gestión del sistema de archivos
El Código fuente 410 muestra el proceso básico que acabamos de describir.
Imports System.IO
Module Module1 Sub Main() Dim swEscritor As StreamWriter ' creamos un stream de escritura, y al mismo tiempo un ' nuevo archivo para escribir texto sobre él swEscritor = New StreamWriter("\pruebas\NOTAS.txt")
' escribir líneas swEscritor.WriteLine("esta es la primera línea") swEscritor.WriteLine("segunda línea de texto")
' ahora escribimos texto pero sin provocar un salto de línea swEscritor.Write("Juan y Luna ") swEscritor.Write("van de paseo") swEscritor.Write(swEscritor.NewLine) ' esto introduce el salto de línea
swEscritor.WriteLine("con esta línea cerramos")
' cerrar el stream y el archivo asociado swEscritor.Close()
End Sub End Module
Código fuente 410
Algunas de las clases de tipo Stream de escritura disponen del campo compartido Null, que permite realizar una operación de escritura que no será volcada en el medio físico de almacenamiento, con lo que se perderán los datos escritos. Ver el Código fuente 411.
' escribir a un medio inexistente (nulo) swEscritor.Null.WriteLine("este texto no llegará al archivo")
Código fuente 411
En el caso de que el archivo sobre el que vamos a escribir ya exista, podemos utilizar un constructor
de StreamWriter que nos permite especificar si vamos a añadir texto al archivo o vamos a sobrescribir, perdiendo el texto que hubiera. Veamos un ejemplo en el Código fuente 412.
' abre el archivo y se sitúa al final del texto para añadir swEscritor = New StreamWriter("\pruebas\NOTAS.txt", True)
' se elimina el contenido previo del archivo swEscritor = New StreamWriter("\pruebas\NOTAS.txt", False)
Código fuente 412
Después de crear un objeto de este tipo, y escribir algunas líneas de texto sin cerrar el Stream, si abrimos su archivo de texto correspondiente, nos encontraremos con que no hay texto dentro del archivo. Ello es debido a que todavía no se ha volcado el contenido del búfer del objeto sobre el archivo. Para forzar dicho volcado, deberemos llamar al método Flush( ), que se encarga de traspasar el búfer al archivo asociado al Stream. Veamos el Código fuente 413.
Programación con Visual Basic .NET © Grupo EIDOS
Dim swEscritor As StreamWriter ' creamos un stream de escritura swEscritor = New StreamWriter("\pruebas\NOTAS.txt", False)
' escribir líneas swEscritor.WriteLine("la primera línea") swEscritor.WriteLine("un poco más de texto")
' si abrimos el archivo antes de la siguiente, estará vacío swEscritor.Flush() ' ahora el archivo ya contendrá texto
' cerrar el stream y el archivo asociado swEscritor.Close()
Código fuente 413
Parts
» Visual branding biro perjalanan alam (1)
» El manifiesto del ensamblado
» Instalación de Visual Studio .NET
» Grabando texto en un fichero
» Principales elementos en nuestro entorno de trabajo
» Manejo de ventanas adicionales del IDE
» Conceptos mínimos sobre depuración
» Comparación de cadenas en base a un patrón. El operador Like
» Uso de paréntesis para mejorar la legibilidad de expresiones
» Sintaxis de un procedimiento Function
» Sobrecarga de procedimientos
» Abordando un problema mediante programación procedural
» Creación de propiedades para la clase
» Encapsulación a través de propiedades
» Creación de métodos para la clase
» Sobrecarga de métodos o polimorfismo, en una misma clase
» Espacios de nombres (namespaces)
» Acceso a espacios de nombre de otros ensamblados
» Herencia y sobre-escritura de métodos
» Diferencias entre sobrecarga y sobre-escritura en base al tipo de enlace
» Ocultamiento de miembros de una clase
» Comportamiento de las palabras clave Me, MyClass y MyBase ante la sobre-escritura de métodos
» Herencia y métodos constructores
» Clases abstractas o no instanciables
» Comprobación del tipo de un objeto y moldeado (casting)
» Destrucción de objetos y recolección de basura
» Creación y manipulación de estructuras
» Estructuras o clases, ¿cuál debemos utilizar?
» Manipulación de cadenas con la clase String
» Optimizando la manipulación de cadenas con la clase StringBuilder
» Extender las funcionalidades de una clase a través de delegados
» La clase EventArgs, o cómo obtener información del objeto emisor del evento
» Obtención de subarrays a partir de un objeto ArrayList
» Manejo básico de colecciones Hashtable
» Operaciones varias con colecciones Hashtable
» Manipulación de valores en una colección Queue
» Implementando un interfaz para crear una nueva colección
» Manipulación estructurada de errores
» La influencia del orden de los manipuladores de excepciones
» Creación de excepciones personalizadas
» Manipulación de archivos mediante File y FileInfo
» Manipulación de archivos mediante Directory y DirectoryInfo
» Monitorización del sistema de archivos con FileSystemWatcher
» Creación de un formulario básico
» Iniciar el formulario desde Main( )
» Codificación de los eventos de controles
» Selección de texto en un TextBox
» Compartiendo código entre controles
» Crear una clase derivada de un control
» Agregar un proyecto con un formulario derivado
» Crear un formulario heredado desde un proyecto independiente
» Creación de menús desde código
» Detectando el estado de finalización
» Crear un proceso de monitorización
» Comportamiento Modal de formularios
» Formularios dependientes y fijos en primer plano
» Dibujo con las clases Graphics y Pen
» Manipulación de los eventos de pintado en la clase Form
» Manipulando el grado de opacidad del formulario
» Integrando elementos. Un visualizador de gráficos
» Comparativa de ADO /ADO .NET
» Arquitectura de datos desconectados
» Una visión general de ADO .NET
» Espacios de nombres y clases en ADO .NET
» Empleo de Data Binding simple para navegar y editar datos
» Configurar por código las propiedades del DataGrid
Show more