Ejercicios Files

public class Alumno {
	// El public es un modificador de acceso
	// Quiere decir que cualquiera puede acceder al valor
	public String nombre;
	// Tenemos tres sabores de protección
	// public, protected y private
	private ArrayList<Integer> notas;

	// Los parámetros que queremos poner al crear la clase
	public Alumno(String nombre) {
		// Las cosas que queremos que se ejecuten
		// cuando creamos la clase
		// this.nombre es el nombre del objeto
		// nombre es el parámetro que le pasamos
		this.nombre = nombre;
		notas = new ArrayList<Integer>();
	}

	public Alumno() {
		// Llamando a la sobrecarga del constructor
		this("anonimo");

	}

	public int ponNota(int nota) {
		// Me aseguro de que mis notas están entre 0  10
		if (nota > 0 && nota <= 10) {
			notas.add(nota);
		}
		return notas.size();
	}

	public double media() {

		double total = 0;
		// Desde dentro de la clase si que puedo acceder
		for (int nota : notas) {
			total += nota;
		}
		return total / this.notas.size();
	}
}
public static void main(String[] args) {
		ArrayList<Alumno> alumnos=importar("archivo.txt");
		System.out.println(estadoCarpeta("c:\\pepe"));
		ArrayList<String> nombres = new ArrayList<>();
		Scanner sc = new Scanner(System.in);
		for (int i = 0; i < 5; i++) {
			System.out.println("Introduce nombre " + i);
			nombres.add(sc.next());
		}

		Path path = Paths.get("nombres.txt");

		try {
			Files.write(path, nombres, StandardOpenOption.CREATE);
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
	}

	public static int estadoCarpeta(String ruta) {
		Path path = Paths.get(ruta);
		if (!Files.isDirectory(path)) {
			return -1;
		}
		try {
			List<Path> ficheros = Files.list(path).collect(Collectors.toList());
			if (ficheros.size() == 0) {
				return 0;
			}
			// TODO: Crear un método aparte
			for (Path fichero : ficheros) {
				if (Files.isDirectory(fichero)) {
					return 2;
				}
			}
			return 1;

		} catch (IOException e) {
			System.out.println(e.getMessage());
			return -1;
		}

	}

	public static ArrayList<Alumno> importar(String ruta) {
		List<String> contenido;
		// Leer fichero
		Path path = Paths.get(ruta);
		try {
			contenido = Files.readAllLines(path);
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
			return null;
		}
		// Crear arraylist
		/*
		 * Nombre;nota Ana;5;6;7 Pep;3;3 Eva;5;5
		 */
		ArrayList<Alumno> alumnos= new ArrayList<Alumno>();
		for(int i=1;i<contenido.size();i++) {
			String[] elementos=contenido.get(i).split(";");
			Alumno temp=new Alumno(elementos[0]);
			for(int j=1;j<elementos.length;j++) {
				temp.ponNota(Integer.parseInt(elementos[j]));
			}
			alumnos.add(temp);
		}
		return alumnos;
	}
public class Jugador {
	private String nombre;
	private ArrayList<Carta> mano;

	public Jugador(String nombre) {
		super();
		this.nombre = nombre;
		mano = new ArrayList<>();
	}

	protected String getNombre() {
		return nombre;
	}

	protected void setNombre(String nombre) {
		this.nombre = nombre;
	}

	protected ArrayList<Carta> getMano() {
		return mano;
	}

	protected void setMano(ArrayList<Carta> mano) {
		this.mano = mano;
	}

	protected void setMano(Carta carta) {
		this.mano.add(carta);
	}

	@Override
	public String toString() {
		return "Jugador [nombre=" + nombre + ", mano=" + mano + "]";
	}

	public void logFichero(String ruta) {

		ArrayList<String> resultado = new ArrayList<>();
		// Un arraylist con los datos que quiero escribir
		resultado.add("Nombre jugador: " + this.getNombre());
		resultado.add("Cartas:");
		for (Carta carta : mano) {
			resultado.add(carta.toString());
		}
		// Escribir los datos
		try {
			Path path = Paths.get(ruta);
			if (!Files.exists(path)) {
				Files.createFile(path);
			}
			if (Files.isWritable(path)) {
				Files.write(path, resultado, StandardOpenOption.TRUNCATE_EXISTING);
			}else {
				// TODO: Lanzar excepción
				System.out.println("No se puede escribir");
			}
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
	}

}
	public static void main(String[] args) {
		Jugador ana=new Jugador("Ana Pi");
		ana.setMano(new Espanyola("oros",12));
		ana.setMano(new Espanyola("espadas",6));
		ana.setMano(new Espanyola("copas",8));
		ana.setMano(new Espanyola("oros",10));
		ana.logFichero("cartas_ana.txt");
		
	}

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos