You are on page 1of 4

c  

  
 

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.

c     



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:

x ¦

 
  
  

 
. Aquí
creamos un nuevo archivo para escribir datos sobre él, o abrimos uno existente.

x   


  c
   . 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.

x Π 
Œ. Esta acción vuelca el contenido del búfer del
objeto en el archivo.

¦ 
¦ 

     

 

    

         
    ! "

#$    %& &$ '
!%

 ( 


 ) %   ( %

 ) % * (   !%

    !  ( 


 %+)%

 %  %

 
$ )      ( 

 ) % (   %

       


, 
 
    

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.
   !  

$
 ) %   ! *- %
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

    ./  !0 


#$    %& &$ '
!%' 
         
#$    %& &$ '
!%1 

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.

    
      
#$    %& &$ '
!%1 
 ( 

 ) % ( %

 ) % -  !%
     *   -(

1 
     - !
       

, 


c    



Un objeto StreamReader realiza operaciones de lectura de texto sobre un 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
archivo; y ReadToEnd( ), que devuelve el resto del contenido del archivo, desde el punto en el que
se encontrara el Stream al realizar la última lectura.

 )   2  #$   2  %& &$ '


!%
,
 ) %33)  ( 33%
 ) *
) #) 
2  ) 
,
 ) %)(   445678%) 
,
 ) 
,
 ) %33      33%
 ' !*
' !#) 
2  ' 
,
 ) % !    445678%' !
) 
, 
33333333333333333333333333333333333333333333333
 ( (    
 )   2  #$   2  %& &
!%
 ) *
 , )¦ * #
) #) 
2  ) 
  $) ¦$ *
,
 ) %)( 96784,  968%, )) 
, ):#
) #) 
2  ) 
)


Ñtro de los métodos de lectura es ReadBlock( ), que recibe como parámetro un array de tipo Char,
sobre el que se depositarán una cierta cantidad de caracteres leídos del archivo. En el segundo
parámetro de este método indicamos la posición del array desde la que se comenzarán a guardar los
caracteres. En el tercer parámetro, el número de caracteres a leer.
El método Read( ), también permite realizar una lectura igual que ReadBlock( ), pero en el caso de
no utilizar parámetros, devuelve un valor numérico, correspondiente al código del carácter que
acaba de leer. Cuando llega al final del Stream, devuelve ±1.
Para convertir de nuevo a carácter los valores que devuelve Read( ), debemos pasar estos valores a
un array de tipo Byte, y después, utilizando un objeto ASCIIEncoding, mediante su método
GetString( ), pasaríamos el array a una cadena.

¦ 
¦ 
¦ 
' !
     
 
     
 )   2  #$   2  %& &$ '
!%
        " 2  ;<
4444444444444444444444444444444444444444444444444444
 , =   -   ( 
 ,  >, 
 ?     
 @ * A7
) 
2  ;<,  7?
    , *  
   *=    
- , 
 B *#$ *,  
,
 ) %2    2  ;<%
,
 ) B 
,
 ) 
        " 2  
44444444444444444444444444444444444444444444444
 C¦ * 
 , *; 
    A * - 
      ; 
C#) 
2  
  CD54  * /   4
¦/, *¦$ *' 
2  , *7
 
2  B   , *, *
E F ; 7:
 ¦/
, *, *
E F ; 7#C
C#) 
2  
   
 , / $ ,¦¦ *
 B G*
 H ,¦¦ * " E *
     - 
 ; 
B G#, / 
E *, *
,
 ) %2    2  ;<%
,
 ) B G
,
2  ) 
 
   

You might also like