Publicado el 31 de Julio del 2017
448 visualizaciones desde el 31 de Julio del 2017
201,5 KB
21 paginas
Creado hace 18a (19/04/2007)
Entrada/Salida
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
19 de abril de 2007
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Flujos de entrada/salida
Stream de entrada
Stream de entrada
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Byte Streams
import java . io . F i l e I n p u t S t r e a m ;
import java . io . F i l e O u t p u t S t r e a m ;
import java . io . I O E x c e p t i o n ;
public class C o p i a B y t e s {
public static void main ( String [] args ) throws I O E x c e p t i o n {
F i l e I n p u t S t r e a m in = null ;
F i l e O u t p u t S t r e a m out = null ;
try {
in = new F i l e I n p u t S t r e a m ( args [0]);
out = new F i l e O u t p u t S t r e a m ( args [1]);
int c ;
while (( c = in . read ()) != -1) {
out . write ( c );
}
} f i n a l l y {
if ( in != null ) {
in . close ();
}
if ( out != null ) {
out . close ();
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Llamada desde la línea de comandos
l u i s @ c a s a :~/ d o c e n c i a / Java06 -07 $ java C o p i a B y t e s q u i j o t e . txt q u i j o t e 2 . txt
public static void main ( String [] args ) throws I O E x c e p t i o n {
. . . . . . . . . . . . .
}
args . length () 2
args [0] " q u i j o t e . txt "
args [1] " q u i j o t e 2 . txt "
1
1
2
3
4
5
6
7
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Streams caracteres
import java . io . F i l e R e a d e r ;
import java . io . F i l e W r i t e r ;
import java . io . I O E x c e p t i o n ;
public class C o p i a C a r a c t e r e s {
public static void main ( String [] args ) throws I O E x c e p t i o n {
F i l e R e a d e r i n p u t S t r e a m = null ;
F i l e W r i t e r o u t p u t S t r e a m = null ;
try {
i n p u t S t r e a m = new F i l e R e a d e r ( args [0]);
o u t p u t S t r e a m = new F i l e W r i t e r ( args [1]);
int c = i n p u t S t r e a m . read ();
while ( c != -1) {
o u t p u t S t r e a m . write ( c );
c = i n p u t S t r e a m . read ();
}
} f i n a l l y {
if ( i n p u t S t r e a m != null ) {
i n p u t S t r e a m . close ();
}
if ( o u t p u t S t r e a m != null ) {
o u t p u t S t r e a m . close ();
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Streams Líneas
import java . io . F i l e R e a d e r ;
import java . io . F i l e W r i t e r ;
import java . io . B u f f e r e d R e a d e r ;
import java . io . P r i n t W r i t e r ;
import java . io . I O E x c e p t i o n ;
public class C o p i a L i n e a s {
public static void main ( String [] args ) throws I O E x c e p t i o n {
B u f f e r e d R e a d e r i n p u t S t r e a m = null ;
P r i n t W r i t e r o u t p u t S t r e a m = null ;
try {
i n p u t S t r e a m = new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( args [0]));
o u t p u t S t r e a m = new P r i n t W r i t e r ( new F i l e W r i t e r ( args [1]));
String l = i n p u t S t r e a m . r e a d L i n e ();
while ( l != null ) {
o u t p u t S t r e a m . p r i n t l n ( l );
l = i n p u t S t r e a m . r e a d L i n e ();
}
} f i n a l l y {
if ( i n p u t S t r e a m != null )
i n p u t S t r e a m . close ();
if ( o u t p u t S t r e a m != null )
o u t p u t S t r e a m . close ();
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Buffering
i n p u t S t r e a m =
new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( args [0]));
o u t p u t S t r e a m =
new B u f f e r e d W r i t e r ( new F i l e W r i t e r ( args [1]));
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
o u t p u t S t r e a m . flush (); // v a c i a m o s el b u f f e r de e s c r i t u r a
1
2
3
4
5
6
7
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Leyendo cosas que no son caracteres
Métodos Integer.parseInt(java.lang.String),
Double.parseDouble(java.lang.String)
Clase java.util.Scanner
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
clase Scanner
import java . io .*;
import java . util . S c a n n e r ;
public class E s c a n e r {
public static void main ( String [] args ) throws I O E x c e p t i o n {
S c a n n e r s = null ;
try {
s = new S c a n n e r ( new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( args [ 0 ] ) ) ) ;
while ( s . h a s N e x t ()) {
System . out . p r i n t l n ( s . next ());
}
} f i n a l l y {
if ( s != null ) {
s . close ();
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
clase Scanner
import java . io .*;
import java . util . S c a n n e r ;
public class S u m a S c a n {
public static void main ( String [] args ) throws I O E x c e p t i o n {
S c a n n e r s = null ;
try {
s = new S c a n n e r ( new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( args [ 0 ] ) ) ) ;
double suma =0;
while ( s . h a s N e x t ()) {
if ( s . h a s N e x t D o u b l e ()) {
suma += s . n e x t D o u b l e ();
} else {
String d = s . next ();
suma += Double . p a r s e D o u b l e ( d );
System . out . p r i n t l n ( " Error : " + d );
}
}
System . out . format ( " Suma : %s \ n " , suma );
} f i n a l l y {
if ( s != null ) {
s . close ();
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
clase Scanner
Fichero numeros.txt
1.994.986 ,34
2.000.000 ,00
3.000.000 ,00
3 0 0 0 0 0 0
10.11
~/ Java$ export C L A S S P A T H =./ c l a s s e s /
~/ Java$ / opt / java / jdk1 .5/ bin / java S u m a S c a n n u m e r o s . txt
Error :10.11
Suma : 9 9 9 4 9 9 6 . 4 5
1
2
3
4
5
1
2
3
4
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Construyendo puntos
public class Punto i m p l e m e n t s F i g u r a P l a n a {
p r i v a t e double posX , posY ;
public Punto ( String s ){
S c a n n e r scan = new S c a n n e r ( s );
scan . u s e L o c a l e ( Locale . US );
posX = scan . n e x t D o u b l e ();
posY = scan . n e x t D o u b l e ();
}
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
}
1
2
3
4
5
6
7
8
9
10
11
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Construyendo puntos
public class Punto i m p l e m e n t s F i g u r a P l a n a {
p r i v a t e double posX , posY ;
public Punto ( String s ){
S c a n n e r scan = new S c a n n e r ( s );
posX = Double . p a r s e D o u b l e ( scan . next ());
posY = Double . p a r s e D o u b l e ( scan . next ());
}
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
}
1
2
3
4
5
6
7
8
9
10
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Fichero de figuras
Fichero figuras.txt
c i r c u l o
5 5 2
s e g m e n t o
3 4 8 4
recta
3 5 3 6
recta
0 1 1 1
c i r c u l o
0 2 0.5
recta
0 2 4 5
p a r a l e l o g r a m o
0 4 2 2 -2 2
p a r a l e l o g r a m o
0 0 2 2 -2 2
p a r a l e l o g r a m o
2 2 0 4 0 0
p a r a l e l o g r a m o
0 0 2 2 4 0
punto
2 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Leyendo puntos
Fichero puntos.txt
4 5
7 3
1 1
0.5 1
1 0.5
7 4
0 2
1
2
3
4
5
6
7
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Leyendo
public class P r u e b a G e o m e t r i a I {
p r i v a t e static void l e e P u n t o s ( String f i c h e r o ) {..}
p r i v a t e static void l e e F i g u r a s ( String f i c h e r o ) {..}
1
2
3
4
5
6
public static void main ( String args []) throws IOException , F i l e N o t F o u n d E x c e p t i o n {
7
8
9
10
11
12
13
14
String n o m b r e P u n t o s = args [0];
String n o m b r e F i g u r a s = args [1];
System . out . p r i n t l n ( " Puntos : " );
l e e P u n t o s ( n o m b r e P u n t o s );
System . out . p r i n t l n ( " F i g u r a s : " );
l e e F i g u r a s ( n o m b r e F i g u r a s );
}
}
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Leyendo puntos
p r i v a t e static void l e e P u n t o s ( String f i c h e r o )
throws F i l e N o t F o u n d E x c e p t i o n , I O E x c e p t i o n {
B u f f e r e d R e a d e r lector = new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( f i c h e r o ));
String datos = lector . r e a d L i n e ();
while ( datos != null ){
Punto p = new Punto ( datos );
System . out . p r i n t l n ( p );
datos = lector . r e a d L i n e ();
}
}
1
2
3
4
5
6
7
8
9
10
11
Luis Fernando Llana Díaz
Dept. Sistemas Informáticos y Computación Universidad Complutense de Madrid
Entrada/Salida
Leyendo figuras
p r i v a t e static F i g u r a P l a n a c o n s t r u y e F i g u
Comentarios de: Entrada/Salida (0)
No hay comentarios