PDF de programación - Práctica 9: Vectores de Strings y ficheros (solución)

Imágen de pdf Práctica 9: Vectores de Strings y ficheros (solución)

Práctica 9: Vectores de Strings y ficheros (solución)gráfica de visualizaciones

Publicado el 30 de Septiembre del 2018
842 visualizaciones desde el 30 de Septiembre del 2018
17,2 KB
2 paginas
Creado hace 17a (04/05/2006)
Práctica 9: Vectores de Strings y ficheros

Solución



elementos del mismo

1. Como sabemos java dispone de la clase genérica java.util.Vector que sirve para
clase
almacenar
VectorStrings, parte de un paquete utilidades, específica para almacenar cadenas
de caracteres (Strings). La clase tendrá todos los métodos de la clase vector,
además de:

tipo. Queremos

escribir una


a. Una constructora por defecto que cree el vector vacío.
b.Una constructora que reciba como parámetro un String conteniendo el nombre de
un fichero de texto, e inicialice el vector con las líneas de texto del fichero (cada
línea será un elemento del vector). Si el fichero no existe la constructora creará el
vector vacío (igual que la constructora por defecto).

Nota: Para el manejo de ficheros de texto en Java ver los ejemplos al final de la

práctica.

c. Un método escribe que grabará el contenido del vector en un fichero de texto,
cuyo nombre recibe el método como parámetro. Cada elemento del vector se
convertirá en una línea del fichero.

d.Un método inserta que reciba como parámetro un String y lo añada al vector en el

lugar que le corresponda por orden alfabético.

Pista: El método compareTo de la clase String recibe como parámetro un String y lo
la forma
compara alfabéticamente con el String actual. Una
s1.compareTo(s2) devuelve 0 si s1 y s2 son iguales, un número <0 si s1 es menor
que s2 alfabéticamente, y un número >0 si s1 es mayor alfabéticamente que s2.

llamada de

Solución:
package utilidades;
import java.util.*;
import java.io.*; // para utilizar las clases y excepciones de fichero

public class VectorStrings extends Vector<String> {



/** Constructora por defecto; crea el vector vacío */
public VectorStrings(){}

/** Constructora que recibe como parámetro el nombre de un fichero de texto
* e inicializa el vector de forma que cada línea del fichero sea un elemento del vector.
* Si el fichero no existe equivale a la consrtuctora por defecto.
* @param nombre del fichero.
*/
public VectorStrings(String nombre) {


try { // abrimos el fichero
BufferedReader fichero = new BufferedReader(new FileReader(nombre));
// leer la priemra línea
String línea = fichero.readLine();



// cuando no queda nada por leer readLine devuelve null

while (línea != null) {



}
// al acabar cerramos el fichero
fichero.close();

addElement(línea);
línea = fichero.readLine();



} catch (IOException e) {
// no hacemos nada
}

try{

// abrimos el fichero para escritura
PrintWriter fichero = new PrintWriter(new FileWriter(nombre));
for (int i=0;i<size();i++)
fichero.println(elementAt(i));
fichero.close();
} catch (IOException e){
}


/**
* Escribe el contenido del vector en un fichero. Cada elemento del vector será una línea
* en el fichero. El contenido anterior del fichero se pierde.
*/
public void escribe(String nombre) {



}

/**
* Añade un String al vector en la posición que le corresponda lexicográficamente
*/
public void inserta(String s){
// buscamos su sitio

int sitio=0;

while(sitio<size() && elementAt(sitio).compareTo(s)<0) sitio++;


// lo añadimos

insertElementAt(s,sitio);
}



}



}

2. Escribir un programa Principal para probar la clase anterior. El programa:

a. Declarará un objeto de tipo VectorStrings pasándole en la constructora el
nombre de un fichero de texto que habremos creado previamente (por
ejemplo “C:\\datos.txt”).

b. Añadirá una frase cualquiera al vector mediante el método inserta.
c. Mostrará el contenido del vector por pantalla (un elemento por línea).
d. Grabará (usando el método escribe) el vector en un fichero con otro
están
nombre
correctamente realizados el nuevo fichero debe ser una copia del
original con la frase añadida en su lugar correcto.

“c:\\datos2.txt”). Si

los métodos

ejemplo

(por


import utilidades.VectorStrings;

public class Principal {



public static void main(String[] args) {


VectorStrings v = new VectorStrings("c:\\datos.txt");
v.inserta("Dábale arroz a la zorra el abad");



/* Para los que quieran saber más: Java permite recorrer los vectores de forma

for (int i=0;i<v.size();I++) System.out.println(v.elementAt(i));



más sencilla, tal y como muestra el siguiente ejemplo:



}

v.escribe("c:\\datos2.txt");


for (String s:v) System.out.println(s) ; */



}
  • Links de descarga
http://lwp-l.com/pdf13662

Comentarios de: Práctica 9: Vectores de Strings y ficheros (solución) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad