CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Duda con StreamReader: Concepto, alguien me explica?

(1/1)

Jimbenit:
Hola compañeros de solocodigo

En esta ocasión me gustaria que alguien me explicará el porque del siguiente error, lo solucioné pero aun no se la explicación.

Lo que quiero hacer es escribir unos lineas de texto en un archivo de txt, esto se hace asi:

--- Código: vb.net ---Imports SystemImports System.IO  Module Module1     Sub Main()         Dim FS As FileStream        Dim SW As StreamWriter        Dim STR As String         Try            'crear un flujo hacie el ficher txt            FS = New FileStream("d:doc.txt", FileMode.Append, FileAccess.Write)            SW = New StreamWriter(FS)             Console.WriteLine("Escriba una linea y pulse enter, para terminar solo pulse enter")            STR = Console.ReadLine            While STR <> Nothing                'escribe la linea en el fichero                SW.WriteLine(STR)                'siguiente linea                STR = Console.ReadLine            End While         Catch ex As IOException            Console.WriteLine("Error : " & ex.Message)        Finally            If (Not SW Is Nothing) Then SW.Close()        End Try     End Sub End Module 
el codigo anterior funciona bien, ahora miren el siguiente codigo:

--- Código: vb.net ---Imports SystemImports System.IO  Module Module1     Sub Main()         Dim FS As FileStream        Dim SW As StreamWriter        Dim STR As String         Try            'crear un flujo hacie el ficher txt            FS = New FileStream("d:doc.txt", FileMode.Append, FileAccess.Write)            SW = New StreamWriter(FS)             Console.WriteLine("Escriba una linea y pulse enter, para terminar solo pulse enter")            STR = Console.ReadLine            While STR <> Nothing                'escribe la linea en el fichero                SW.WriteLine(STR)                'siguiente linea                STR = Console.ReadLine            End While         Catch ex As IOException            Console.WriteLine("Error : " & ex.Message)            'Finally  <== suprimida            '   If (Not SW Is Nothing) Then SW.Close()  <== y esta tambien la quite        End Try     End Sub End Module  
quite dos lineas que sirven para cerrar el flujo de la clase streamwriter, se supone que el VB debe cerrar este flujo en caso de que yo no lo haga, pero tal parece que no y como resultado, las lineas de texto no se escriben.

¿Hay alguna explicación del porque sucede esto?

saludos.

Newtek:
Jimbenit.

Lamento que haya durado tanto para contestar.

Lo que puedo observar es que lo que quitastes es el Finally del Catch.

Te cuento que el Finally siempre es ejecutada... tengas o no tengas una excepcion. En otras palabras antes de que lo quitaras el ejecutaba esa parte del codigo y por eso es que ahora te funciona.

Una cosa que tienes que tomar en cuenta es que el Finally esta al mismo nivel del Try o del Catch y no dentro del Catch.

Bueno avisame si hay algo mas en lo que te puedo ayudar.


Newtek
Web Hosting, Design, Development & SEO at Newtek Web Hosting

Navegación

[0] Índice de Mensajes

Ir a la versión completa