• Viernes 19 de Abril de 2024, 16:54

Autor Tema:  Duda con StreamReader: Concepto, alguien me explica?  (Leído 1959 veces)

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Duda con StreamReader: Concepto, alguien me explica?
« en: Jueves 17 de Junio de 2010, 00:05 »
0
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
  1. Imports System
  2. Imports System.IO
  3.  
  4.  
  5. Module Module1
  6.  
  7.     Sub Main()
  8.  
  9.         Dim FS As FileStream
  10.         Dim SW As StreamWriter
  11.         Dim STR As String
  12.  
  13.         Try
  14.             'crear un flujo hacie el ficher txt
  15.             FS = New FileStream("d:doc.txt", FileMode.Append, FileAccess.Write)
  16.             SW = New StreamWriter(FS)
  17.  
  18.             Console.WriteLine("Escriba una linea y pulse enter, para terminar solo pulse enter")
  19.             STR = Console.ReadLine
  20.             While STR <> Nothing
  21.                 'escribe la linea en el fichero
  22.                 SW.WriteLine(STR)
  23.                 'siguiente linea
  24.                 STR = Console.ReadLine
  25.             End While
  26.  
  27.         Catch ex As IOException
  28.             Console.WriteLine("Error : " & ex.Message)
  29.         Finally
  30.             If (Not SW Is Nothing) Then SW.Close()
  31.         End Try
  32.  
  33.     End Sub
  34.  
  35. End Module
  36.  

el codigo anterior funciona bien, ahora miren el siguiente codigo:
Código: vb.net
  1. Imports System
  2. Imports System.IO
  3.  
  4.  
  5. Module Module1
  6.  
  7.     Sub Main()
  8.  
  9.         Dim FS As FileStream
  10.         Dim SW As StreamWriter
  11.         Dim STR As String
  12.  
  13.         Try
  14.             'crear un flujo hacie el ficher txt
  15.             FS = New FileStream("d:doc.txt", FileMode.Append, FileAccess.Write)
  16.             SW = New StreamWriter(FS)
  17.  
  18.             Console.WriteLine("Escriba una linea y pulse enter, para terminar solo pulse enter")
  19.             STR = Console.ReadLine
  20.             While STR <> Nothing
  21.                 'escribe la linea en el fichero
  22.                 SW.WriteLine(STR)
  23.                 'siguiente linea
  24.                 STR = Console.ReadLine
  25.             End While
  26.  
  27.         Catch ex As IOException
  28.             Console.WriteLine("Error : " & ex.Message)
  29.             'Finally  <== suprimida
  30.             '   If (Not SW Is Nothing) Then SW.Close()  <== y esta tambien la quite
  31.         End Try
  32.  
  33.     End Sub
  34.  
  35. End Module
  36.  
  37.  

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.


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]

Newtek

  • Miembro activo
  • **
  • Mensajes: 81
  • Nacionalidad: cr
    • Ver Perfil
    • http://www.newtekwebhosting.com.com?id=000231
Re: Duda con StreamReader: Concepto, alguien me explica?
« Respuesta #1 en: Lunes 26 de Julio de 2010, 15:46 »
0
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