Anda di halaman 1dari 16

EQUIPO 2

Luis Fernando Cuevas Felipe de Jess Rincn Jeshua Domnguez Carlos Figueroa

La clase string
Una String es una variable referenciada asociada a un objeto de la clase Java.lang.*;, aunque ms concretamente de java.lang.String;. Se emplea para almacenar cadenas de caracteres. Las Strings tienen una caracterstica que las diferencia del resto de objetos: son inmutables, es decir, cuando se intenta modificarlas, por ejemplo al aplicarles un mtodo, no se modifican sino que se crea otra String nueva. Aqu se expone un ejemplo.


Los strings u objetos de la clase String se pueden crear explcitamente o implcitamente.
Implcitamente: Para crear un string implcitamente basta poner una cadena de caracteres entre comillas dobles.

System.out.println("El primer programa");

Explcitamente: es cunado se declara previamente antes de las instrucciones.

Declaracin de objetos string

String str=new String("El primer programa"); String str="El primer programa"; Para crear un string nulo se puede hacer de estas dos formas:
String str=""; String str=new String();

Mtodos de la clase string

Para obtener la longitud length Conocer si un string comienza con un determinado prefijo startsWith Conocer si un string termina con un determinado prefijo endsWith Obtener la posicin de la primera ocurrencia de un caracter indexOf

Inputstream
Esta clase abstracta es la superclase de todas las clases que representan un flujo de entrada de bytes. Las

aplicaciones que necesitan para definir


una subclase deInputStream siempre

debe

Ejemplo de input stream


Esta clase abstracta es la superclase de todas las

clases que representan un flujo de entrada de bytes.


Las aplicaciones que necesitan para definir una subclase de InputStream siempre debe proporcionar un mtodo que devuelve el siguiente byte de entrada.

La clase abstracta InputStream declara los mtodos para leer datos desde una fuente concreta y es la clasa base de la mayor parte de los flujos de entrada en java.io. Soporta los mtodos siguientes:

La clase abstracta InputStream declara los mtodos para leer datos desde una fuente concreta y es la clasa base de la mayor parte de los flujos de entrada en java.io. Soporta los mtodos siguientes: int read() lee un slo byte de datos y los devuelve en el rango [0..255]. Devuelve 1 cuando se alcanza el final del flujo y no puede seguir leyendo bytes. int read(byte [] buf) lee un array de bytes hasta buf.length. Devuelve el nmero de bytes leidos o -1 cuando se llega al final del flujo. int read(byte [] buf, int off, int len) lee len bytes del flujo (o los que pueda) y los coloca a partir de la posicin off del array. long skip(long count) salta hasta count bytes de entrada o hasta el final del flujo de entrada, devolviendo el nmero de bytes saltados. int available() devuelve el nmero de bytes que estn disponibles para leerse. void close() cierra el flujo de entrada que abri el constructor no-arg, liberando los recursos asociados a ese flujo. No es necesario invocar este mtodo ya que el flujo se cierra cuando se destruye el objeto aunque es conveniente hacerlo ya que vuelca el buffer sobre el disco.

El siguiente ejemplo es un programa muy sencillo que hace el eco del la entrada estandar (el teclado) leyendo los caracteres de 5 en 5 (el return tambin es un carcter). Finaliza cuando se cierra el flujo de entrada con un carcter Ctrl-D. El mtodo main debe indicar que lanzar una excepcin InputStream. El mtodo read se aplica sobre el

objeto System.in que es un flujo de entrada; la entrada estandar, el teclado.


El constructorString(byte[] bytes, int hiByte, int offset, int conunt) hace un String nuevo cuyo valor es el subarray especificado del array bytes comenzando en offset y de count caracteres. En las conversiones de ASCII8 o ISO-LATIN-1 el hibyte estar a 0.

import java.io.*; class Eco{ public static void main(String []


args) throws IOException{ byte [] b= new byte[5]; String cadena; int l=0; for(;;){ l=System.in.read(b); if (l<0) break; cadena= new String(b,0,0,l); System.out.print("/"+cadena+"/"); } }}

Output Streams
Esta clase abstracta es la superclase de todas las clases que representan un stream de bytes de salida. Su nico constructor es OutputStream(). Todas las subclases que quierar heredar de la clase OutStream deben implementar el mtodoint write(int b), que escribe un byte a la salida.

Las principales clases para representar "Streams" son : InputStream y OutputStream, como su nombre lo indica la primera de estas es utilizada para "Streams" de Entrada (Input) mientras la segunda "Streams" de Salida (Output); a partir de estas dos Clases son derivadas todas las Clases que hacen uso de datos de entrada y salida.

Mtodos de Output stream


Define los mtodos write(byte[] b) y write(byte[] b, int offset, int length) que actan de forma similar al read de la clase InputStream, solo que en vez de leer, ahora escriben. flush(). Si existen un buffer intermediario en nuestro stream, este provoca que almacene inmediatamente a nuestra salida. El mtodo flush de OutputStream no hace nada, as que es necesario redefinirlo. close(). Cierra el stream de salida. La clase OutputStream tiene definido subclases que abren diferentes streams de salida hacia algn tipo de almacenamiento (memoria y archivos frecuentemente), y son muy parecidos a las subclases de InputStream, solo que en vez de leer se escribe.

Jerarquas Clases 8 bits

LA CLASE BufferedReader
Con la clase InputStreamReader podramos apaarnos. La pega es que nos da los caracteres sueltos. Si estamos leyendo de teclado, el que usa el programa puede escribir 10 caracteres o 20 o 13. Si usamos InputStreamReader, como lee caracteres sueltos, Tenemos que decirle cuntos queremos (que no lo sabemos), o bien ir pidiendo de uno en uno hasta que no haya ms. Esto es un poco rollo y si slo tuviramos la clase InputStreamReader sera un trozo de cdigo que tendramos que repetir por muchos lados.

Para el cado concreto de leer de teclado, sera ideal si hubiese


una clase en java que nos lea de golpe todo lo que ha escrito el usuario de nuestro programa y nos diera de un golpe. Como la gente de Java son muy listos, esa clase existe en Java. Se llama BufferedReader. El mecanismo para obtener un BufferedReader a partir de otro Readercualquiera (por ejemplo el InputStreamReader), es similar al que usamos antes. Lo instanciamos pasndole en el constructor el Reader.

El cdigo es: BufferedReader br = new BufferedReader (isr); El funcionamiento de esta clase es igual que el InputStreamReader. Cuando le pedimos una lnea completa de caracteres (un String), ella se lo pide al Reader que tenga dentro, los convierte en String y nos lo devuelve. Para pedirle un String, se usa el mtodo readLine(). Este mtodo lee todos los caracteres tecleados (recibidos si fuera otro dispositivo de entrada) hasta que encuentra la pulsacin de la tecla <INTRO>, <RETURN> o como quieras llamarla. String texto = br.readLine(); Esto lee del teclado un String completo y lo guarda en una variable "texto".