Cómo leer un archivo de texto utilizando System.IO en Visual Basic 2005 o en Visual Basic .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 302309 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E302309
Para obtener una versión de este artículo para Microsoft Visual C# .NET, vea 306777.
Para obtener una versión de este artículo para Microsoft Visual Basic 6.0, vea 183638.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se demuestra cómo recuperar información de un archivo de texto y utilizar una clase ArrayList para mostrar al usuario esa información.

Lectura de archivos de texto en Visual Basic 2005 o Visual Basic .NET

Abrir y leer archivos para el acceso de lectura constituye una parte importante de la funcionalidad de entrada/salida (E/S), incluso si no se tiene que escribir en el archivo en cuestión. En este ejemplo, se abrirá un archivo para lectura, lo que resulta de utilidad para los archivos de texto pero no así para los archivos binarios. Para ello, se empleará uno de los muchos métodos que existen para tal fin. Aunque hay muchas estructuras de datos para almacenar la información que se recupera del archivo, la estructura más fácil de utilizar es la clase ArrayList. Para abrir y leer del archivo, en este ejemplo se usan objetos del espacio de nombres System.IO, en concreto la clase System.IO.StreamReader.

Nota: en este ejemplo se requiere alguna forma de archivo de texto (.txt) del que leer.

Para cargar y leer un archivo de texto desde Microsoft Visual Basic 2005 o Microsoft Visual Basic .NET, siga estos pasos:
  1. Inicie Microsoft Visual Studio 2005 o Microsoft Visual Studio .NET. Cree una nueva aplicación de consola en Visual Basic. Visual Studio crea un módulo junto con un procedimiento Main() vacío.
  2. Asegúrese de que el proyecto haga referencia al menos al espacio de nombres System. Utilice la instrucción Imports de los espacios de nombres System, System.IO y System.Collections de forma que no tenga que calificar las declaraciones de estos espacios de nombres más adelante en el código. Debe utilizar estas instrucciones antes que cualquier otra declaración.
    Imports System
    Imports System.IO
    Imports System.Collections
    					
  3. Para abrir un archivo para lectura, cree una nueva instancia de un objeto StreamReader y pase la ruta de acceso del archivo al constructor de la manera siguiente:
    Dim objReader As New StreamReader("c:\test.txt")
    					
  4. Necesitará una variable de cadena en la que almacenar cada línea del archivo a medida que procesa. Como estas cadenas las agregará a una ArrayList, declare y cree también un objeto de ese tipo.
    Dim sLine As String = ""
    Dim arrText As New ArrayList()
    					
  5. Existen varias maneras de leer en el archivo, incluido el método ReadToEnd que lee en el archivo entero de una vez. Sin embargo, en este ejemplo, puede utilizar el método ReadLine para introducir el archivo línea a línea. Cuando se alcanza el final del archivo, este método devuelve "Nothing", lo que permite terminar el bucle. Mientras lee cada línea del archivo, puede usar el método Add de la ArrayList para insertar las líneas en la clase ArrayList.
    Do
        sLine = objReader.ReadLine()
        If Not sLine Is Nothing Then
            arrText.Add(sLine)
        End If
    Loop Until sLine Is Nothing
    objReader.Close()
    					
  6. Utilice un bucle "For Each" para escribir el contenido de la ArrayList recién rellenada en la consola de la manera siguiente:
    For Each sLine In arrText
        Console.WriteLine(sLine)
    Siguiente
    Console.ReadLine()
    					
  7. Guarde y ejecute el código, que genera un listado del archivo en la consola.

Listado de código completo

Imports System
Imports System.IO
Imports System.Collections

Module Module1

    Sub Main()
        Dim objReader As New StreamReader("c:\test.txt")
        Dim sLine As String = ""
        Dim arrText As New ArrayList()

        Do
            sLine = objReader.ReadLine()
            If Not sLine Is Nothing Then
                arrText.Add(sLine)
            End If
        Loop Until sLine Is Nothing
        objReader.Close()

        For Each sLine In arrText
            Console.WriteLine(sLine)
        Siguiente
        Console.ReadLine()
    End Sub

End Module
				

Inconvenientes

Hay varias cosas que es necesario tener en cuenta al trabajar con la E/S de un archivo, como por ejemplo las siguientes:
  • Cada vez que tiene acceso a un archivo, cabe la posibilidad de que el archivo del que intenta leer o en el que intenta escribir no se encuentre en el sistema o esté en uso.
  • En este ejemplo se lee todo el archivo en la memoria antes de procesarlo. Puede darse el caso de que el archivo sea demasiado grande para mantenerlo en la memoria o que no tenga permisos para tener acceso a este.
Cualquiera de estas situaciones producen una excepción. Siempre resulta útil proporcionar un bloque try... catch para tratar estos problemas comunes.
Nota: es un artículo de "PUBLICACIÓN RÁPIDA" creado directamente por la organización de soporte técnico de Microsoft. La información aquí contenida se proporciona como está, como respuesta a problemas que han surgido. Como consecuencia de la rapidez con la que lo hemos puesto disponible, los materiales podrían incluir errores tipográficos y pueden ser revisados en cualquier momento sin previo aviso. Vea las Condiciones de uso para otras consideraciones

Propiedades

Id. de artículo: 302309 - Última revisión: viernes, 30 de agosto de 2013 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palabras clave: 
kbvs2005applies kbvs2005swept kbhowtomaster KB302309

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com