Archivos3.java
Código:
import java.io.*;
import java.util.*;
import javax.swing.*;
public class Archivos3 {
static Vector nombres = new Vector();
static BufferedReader entrada;
static FileWriter salida =null;
static String nombreCopiar = null;
static String linea;
static File archivo = new File("src/archivos/nombres.txt");
public static void main(String[] args) {
leerArchivo(nombres);
buscarNombre(nombres);
copiaArchivo(nombres);
}
public static void copiaArchivo(Vector n){
try {
salida=new FileWriter("Copia.txt");
if(buscarNombre(n)==1){
salida.write(nombreCopiar);
}
else if (buscarNombre(n)==2){
JOptionPane.showMessageDialog(null, "el nombre no se encuentra");
buscarNombre(nombres);
}
}catch (IOException ex) {
System.out.println(ex);
}finally{
//cerrar los flujos de datos
if(entrada!=null){
try{
entrada.close();
}catch(IOException ex){}
}
if(salida!=null){
try{
salida.close();
}catch(IOException ex){}
}
System.out.println("el bloque finally siempre se ejecuta");
}
try {
//espera la pulsación de una tecla y luego RETORNO
System.in.read();
}catch (Exception e) {
}
}
//leo el archivo y lo meto en un Vector
public static void leerArchivo(Vector n) {
try {
entrada = new BufferedReader(new FileReader(archivo));
while (entrada.ready()) {
linea = entrada.readLine();
n.add(linea);
}
}catch (IOException ex) {
System.out.println(ex);
} finally {
//cerrar los flujos de datos
if (entrada != null) {
try {
entrada.close();
} catch (IOException ex) {
}
}
System.out.println("el bloque finally siempre se ejecuta");
}
}
//busco en el Vector si el nombre se encuentra
public static int buscarNombre(Vector n){
String x = JOptionPane.showInputDialog(null, "ingrese el nombre");
int c = 0;
try {
int pos = n.indexOf(x);
if (x.equals(n.elementAt(pos)) && (pos > -1)) {
System.out.println(n.elementAt(pos));
nombreCopiar = (String) n.elementAt(pos); //hago casting para pasar de objeto a String.
c=1;
}
else{
nombreCopiar = null;
c=2;
}
} catch (Exception e) {
System.out.println("nombre no esta");
}
return c;
}
}