Ezequiel Aranda
Sun Microsystems Campus
Ambassador
AGENDA
>Strings
>StringBuilder y
StringBuffer
>Manejo del sistema
de archivos
String
>El concepto clave del String es entender que,
una vez creado un objeto de este tipo, no
puede ser modificado.
>Entonces, qu es lo que realmente sucede
cuando modificamos un String?
Creando un String
String s = "abcdef";
Modificando un String
s = s.concat(" more stuff");
>Observaciones
>Tcnicamente, ahora hay 3 Strings: abcdef,
more stuff y abcdef more stuff.
>s2 an hace referencia a abcdef.
Pregunta
String s1 = "spring ";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter ";
System.out.println(s1 + " " + s2);
>Qu imprime?
>Cuntos objetos se crearon?
Strings y Memoria
>Para que el manejo de memoria sea ms eficiente,
la JVM reserva una porcin de memoria conocida
como String Pool.
>La regla es la siguiente:
cuando el compilador
encuentra un literal, se
fija en el pool a ver si
hay alguno que
coincida, si es as la
referencia es dirigida al
literal existente, y no se
crea un nuevo literal.
Tipo de retorno
Descripcin
charAt(intindex)
char
concat(Strings)
String
equalsIgnoreCase(
Strings)
boolean
length()
int
replace(charold,
charnew)
String
Tipo de retorno
Descripcin
substring(inta)
substring (int a,
int b)
String
toLowerCase()
String
toString()
String
toUpperCase()
String
String
trim()
StringBuffer y StringBuilder
>Deben utilizarse cuando debemos hacer
muchas modificaciones en un String.
>Si modificamos muchas veces una gran cantidad
de Strings terminaremos con un pool gigante de
Strings abandonados.
StringBuffer o StringBuilder?
>Son exactamente iguales, con la excepcin de
que StringBuffer es thread safe mientras que
StringBuilder no lo es.
>Como siempre, es recomendable, por razones
de rendimiento, usar la clase que no es
thread safe salvo que nos encontremos en un
entorno multi hilo.
Usando StringBuffer/Builder
>Utilizando Strings:
String x = "abc";
x = x.concat("def");
>Utilizando StringBuffer/Builder
StringBuffer x= new StringBuffer("abc");
x.append("def");
Mtodos importantes de
StringBuffer/Builder
Mtodo
Tipo de retorno
Descripcin
StringBuffer/Builder
StringBuffer/Builder
insert(inta,String
b)
StringBuffer/Builder
reverse()
StringBuffer/Builder
toString()
String
append(Strings)
delete(inta,intb)
>Segunda ejecucin:
>exists retorna true.
>createNewFile retorna false.
>El segundo exists retorna true.
File
FileWriter
BufferedWriter
Mtodos clave
Object
File, String
String
Strin, String
createNewFile()
delete()
exists()
isDirectory()
isFile()
list()
mkdir()
renameTo()
Writer
File
String
close()
flush()
write()
Writer
close()
flush()
newLine()
write()
Writer
Argumentos clave de
los constructores
Mtodos clave
PrintWriter
Writer
File (java 5)
String (java 5)
OutputStream
Writer
close()
ush()
format()*,prinI()*
print(),println()
write()
FileReader
Reader
File
String
read()
BufferedReader
Reader
Reader
read()
readLine()
Clase
Buscar archivos
>Asumiendo que tenemos un directorio
llamado searchThis, podemos iterar a
travs del mismo en busca de un archivo con:
String[] files = new String[100];
File search = new File("searchThis");
files = search.list();
for(String fn : files)
System.out.println("found " + fn);
Preguntas