Escritura y lectura de archivos en vb.net

Solo disponible en BuenasTareas
  • Páginas : 5 (1111 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de junio de 2011
Leer documento completo
Vista previa del texto
Las clases StringWriter y StringReader

Estas clases proporcionan la misma funcionalidad que StreamWriter y StreamReader, con la diferencia de que StringWriter trabaja con un objeto StringBuilder como almacén de datos, mientras que StringReader utiliza un String para leer su contenido.

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, yañ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úferdel
objeto en el archivo.

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

realizar una operación de escritura que no será volcada en elmedio físico de almacenamiento, con lo que se perderán los datos escritos.
' escribir a un medio inexistente (nulo)
swEscritor.Null.WriteLine("este texto no llegará al archivo")
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 eltexto que hubiera

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

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, nosencontraremos 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.

Dim swEscritor As StreamWriter
' creamos un stream de escritura
swEscritor = NewStreamWriter("\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()

La clase StreamReader

Un objeto StreamReader realiza operaciones de lectura de texto sobreun archivo.
El proceso que debemos llevar a cabo para leer el contenido de un Stream de lectura es muy similar al de escritura: instanciar el objeto con uno de sus constructores, abriendo un archivo para leer; ejecutar alguno de los métodos de lectura del StreamReader, y cerrar el objeto con Close( ).
Entre los métodos de lectura de este objeto, tenemos ReadLine( ), que devuelve una línea del...
tracking img