OCJP: Objetivo 3.2
OCJP: Objetivo 3.2 A partir de un escenario que involucre navegación por el sistema de archivos, lectura de archivos, o escritura en archivos, desarrollar la solución correcta usando las siguientes clases (algunas veces en combinación), del paquete java.io: BufferedReader, BufferedWriter, File, FileReader, PrintWriter y Console.
A continuación publico un ejemplo tonto y simple que trata de usar las clases mencionadas en el objetivo 3.2 del Oracle Certified Programmer for Java.
Descargar Deditor.java
import java.io.Console;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileWriter;
import java.io.BufferedWriter;
public class Deditor {
public Deditor(){
inicio();
}
public static void main(String[] args) throws Exception{
Console c = System.console();
if(c==null){
throw new Exception("No se pudo obtener consola.");
}
new Deditor();
}
private void inicio(){
int op = 1;
do{
op = getOpcionMenu("Salir","Abrir","Nuevo","Borrar","Listar");
switch(op){
case 1: break;
case 2: abrir(); break;
case 3: nuevo(); break;
case 4: borrar(); break;
case 5: listar(new File(".")); break;
}
} while(op!=1);
}
private void listar(File ruta){
File files[] = ruta.listFiles();
try {
for(File f:files){
System.console().printf("\t%s\n",f.getCanonicalPath());
}
} catch(IOException e){
e.printStackTrace();
}
}
private void abrir(){
try {
System.console().format("Archivo a abrir \n>");
String ruta = System.console().readLine();
File file = new File(ruta);
if(!file.exists()){
System.out.println("Error! el archivo no existe.");
return;
}
FileReader fr = new FileReader(file);
BufferedReader bfr = new BufferedReader(fr);
String linea ;
while((linea = bfr.readLine())!=null){
System.console().printf("%s",linea + '\n');
}
bfr.close();
} catch (FileNotFoundException e){
System.out.println("Archivo no encontrado");
} catch(IOException e){
System.out.println("Error IO");
}
}
private void nuevo(){
String nombreArchivo = null;
System.out.println("Esriba el nombre del archivo: ");
nombreArchivo = System.console().readLine();
if(nombreArchivo==null || nombreArchivo.length()<1 br="">
System.console().printf("El nombre de archivo es invalido.");
return;
}
File file = new File(nombreArchivo);
if(file.exists()){
System.console().printf("Error el archivo ya existe!");
return;
}
System.out.println("Escriba el contenido del archivo\n(finaliza con .)\n\n\n");
StringBuilder contenido = new StringBuilder();
String l = null;
do{
l = System.console().readLine();
contenido.append(l);
contenido.append('\n');
} while (l!=null && !l.equals("."));
try {
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(contenido.toString());
bw.flush();
bw.close();
} catch(IOException e){
e.printStackTrace();
}
}
private void borrar(){
System.out.println("Escriba el nombre del archivo a borrar> ");
String nombreArchivo = System.console().readLine();
if(nombreArchivo==null || nombreArchivo.length()<1 br="">
System.out.println("Archivo invalido");
return;
}
File file = new File(nombreArchivo);
if(!file.exists() || file.isDirectory()){
System.out.println("El archivo no es valido");
return;
}
boolean isOk = file.delete();
if(isOk){
System.out.println("Archivo borrado");
} else {
System.console().printf("Problemas borrando archivo.");
}
}
private int getOpcionMenu(String... opciones){
int i = 1;
System.out.println("Seleccione una opcion:");
for(String o:opciones){
System.out.println("\t" + i + " - " + o);
i++;
}
System.out.print("> ");
return readInt();
}
private int readInt(){
int retorno = 0;
String r = "";
boolean esNumerico = false;
while(r==null || r.length()<1 br="" esnumerico="">
r = System.console().readLine();
try {
retorno = Integer.parseInt(r);
esNumerico = true;
} catch(NumberFormatException e){
// no es error
}
}
return retorno;
}
}1>1>1>
No hay comentarios:
Publicar un comentario