entra da salida java

Upload: ximi-vivar-de-la-cruz

Post on 16-Feb-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Entra Da Salida Java

    1/16

    1

    Entrada/Salida en Java

    Jaime Ramrez, ngel Lucas GonzlezDLSIIS. Facultad de Informtica

    Uniersidad !olit"cnica de #adrid.

  • 7/23/2019 Entra Da Salida Java

    2/16

    2

    Streams

    $ Un stream re%resenta un flu&o deinformaci'n(

    $%rocedente de una fuente)teclado, file, memoria, red,etc.* o

    $dirigida a un destino)%antalla, file, etc.*

    $ Los streams com%arten unamisma interfaz +ue ace a-stracci'n

    de los detalles es%ecficos de cadadis%ositio de /S.

    $0odas las clases de streams estnen el %a+uete &aa.io

  • 7/23/2019 Entra Da Salida Java

    3/16

    3

    Clases de Streams

    (Streams orientados a byte)$Los m'dulos som-reados re%resentanfuentes de datos.

    $Los m'dulos sin som-rearre%resentan %rocesadores.

    $Los %rocesadores se %ueden a%licar aotro %rocesador o a una fuente.

  • 7/23/2019 Entra Da Salida Java

    4/16

    4

    Subclases de InputStream

    $ FileIn%utStream( lectura de files -1te a -1te

    $ 2-&ectIn%utStream( lectura de files con

    o-&etos.$ FilterIn%utStream(34ufferedIn%utStream( lectura con -uffer, ms

    eficiente.

    3DataIn%utStream( lectura de ti%os de datos%rimitios )int, dou-le, etc.*.

  • 7/23/2019 Entra Da Salida Java

    5/16

    5

    Subclases de utputStream

    $ File2ut%utStream( escritura de files -1te a -1te

    $ 2-&ect2ut%utStream( escritura de files cono-&etos.

    $ Filter2ut%utStream(34uffered2ut%utStream( escritura con -uffer, ms

    eficiente.

    3Data2ut%utStream( escritura de ti%os de datos%rimitios )int, dou-le, etc.*.

  • 7/23/2019 Entra Da Salida Java

    6/16

    !

    Clases de Streams

    (Streams orientados a caracter)

    $ So%ortan U5I62D )78 -its %ara un car*.

    $ #'dulos som-reados son fuentes, 1 sin som-rear son%rocesadores.

  • 7/23/2019 Entra Da Salida Java

    7/16

    "

    Subclases de #eader

    $ In%utStreamReader( conierte un stream de-1tes en un stream de cars.3FileReader( se asocia a files de cars %ara leerlos.

    $ 4ufferedReader( %ro%orciona entrada decaracteres a tra"s de un -uffer )mseficiencia*.

  • 7/23/2019 Entra Da Salida Java

    8/16

    $

    Subclases de %riter

    $ 2ut%utStream9riter( conierte un stream de-1tes en un stream de cars.3File9riter( se asocia a files de cars %ara

    modificarlos.$ 4uffered9riter( %ro%orciona salida de

    caracteres a tra"s de un -uffer )ms

    eficiencia*.$ !rint9riter( m"todosprint()1println()%aradistintos ti%os de datos.

  • 7/23/2019 Entra Da Salida Java

    9/16

    &

    tras Clases de 'avaio

    $ File( %ermite realizar o%eraciones a-itualescon files 1 directorios.

    $Random:ccessFile( %ermite acceder al n;"simo registro de un file sin %asar %or losanteriores.

    $ Stream0o un streamen to

  • 7/23/2019 Entra Da Salida Java

    10/16

    1

    *+picos ,sos de los Streams

    (lectura por l+neas)publicstaticvoidmain(String[] args) throwsIOException {

    // a! Se lee un "le l#nea a l#nea$u%ered&eader in ' new$u%ered&eader( newile&eader(IOStream*emo!+ava)),String s- s. ' newString(),while((s ' in!readine())0' null)

    s. 1' s 1 2n,in!close(),// b! Se lee una l#nea por teclado$u%ered&eader stdin ' new$u%ered&eader( newInputStream&eader(S3stem!in)),S3stem!out!print(Enter a line4),S3stem!out!println(stdin!readine()),

    ?

  • 7/23/2019 Entra Da Salida Java

    11/16

    11

    -arsin. de tipos bsicos

    String linea,

    int a,

    $u%ered&eader stdin ' new$u%ered&eader( newInputStream&eader(S3stem!in)),

    S3stem!out!print(Enter a line4),

    linea ' stdin!readine(),

    a ' Integer!parseInt(linea),

    S3stem!out!println(a),

    $ 0am-i"n estn dis%oni-les( %arseDou-le)*, %arseLong)*

  • 7/23/2019 Entra Da Salida Java

    12/16

    12

    *+picos ,sos de los Streams

    (escritura por l+neas)

    // throws IOException

    String []s ' {5hola5- 56ue7- 5tal78,

    // Se iniciali9a s

    :rint;riter out ' new:rint;riter( new$u%ered;riter( newile;riter(IO*emo!out))),

    intline, i?s!length(), i11)out!println(line

  • 7/23/2019 Entra Da Salida Java

    13/16

    13

    *+picos ,sos de los Streams

    (escritura de tipos bsicos)

    // throws IOException *ataOutputStream out. ' new

    *ataOutputStream(new$u%eredOutputStream(new

    ileOutputStream(*ata!txt))),

    out.!write*ouble(@!ABC),out.!write$3tes(Dhat was pi2n5),

    out.!write

  • 7/23/2019 Entra Da Salida Java

    14/16

    14

    *+picos ,sos de los Streams

    (lectura de tipos bsicos)

    // throws IOException*ataInputStream inB ' new*ataInputStream( new

    $u%eredInputStream( new

    ileInputStream(*ata!txt))),

    S3stem!out!println(inB!read*ouble()),S3stem!out!println(inB!readine()), // deprecatedS3stem!out!println(inB!read*ouble()),S3stem!out!println(inB!readD()),

  • 7/23/2019 Entra Da Salida Java

    15/16

    15

    *+picos ,sos de los Streams

    (0iles de acceso aleatorio)// throws IOException// acceso de lectura/escritura&andomFccessile r= ' new&andomFccessile(rtest!dat- rw),=or(inti ' >, i ? >, i11)r=!write*ouble(iG!>>),

    r=!close(),r= ' new&andomFccessile(rtest!dat- rw),r=!seeH(BG), // salta B doubles ( b3tes cada uno)r=!write*ouble(AJ!>>), // modi"ca el sexto doubler=!close(),// acceso de sKlo lecturar= ' new&andomFccessile(rtest!dat- r),=or(inti ' >, i ? >, i11)S3stem!out!println( Lalue 1 i 1 4 1 r=!read*ouble()),r=!close(),

  • 7/23/2019 Entra Da Salida Java

    16/16

    1!

    *+picos ,sos de los Streams

    (b'ect Stream)$ Jaa %ermite guardar o-&etos en ficeros, %ero esos o-&etos

    de-en im%lementar la interfaz Serializable(public class MySerializableClass implements Serializable { ... }

    $ &em%lo(

    // tro@s I2Ace%tionFile2ut%utStream out B ne@ File2ut%utStream)Cte0ime.datC*2-&ect2ut%utStream s B ne@ 2-&ect2ut%utStream)out*s.@rite2-&ect)C0oda1C*s.@rite2-&ect)ne@ Date)7,7,E8**s.close)*

    // tro@s I2Ace%tion 1 6lass5otFoundAce%tionFileIn%utStream in B ne@ FileIn%utStream)Cte0ime.datC*2-&ectIn%utStream s B ne@ 2-&ectIn%utStream)in*String toda1 B )String*s.read2-&ect)*Date date B )Date*s.read2-&ect)*s.close)*