Teria um modo mais pratico de fazer isso?

1 resposta
GabrielCardelli

Falae galera blz?
Queria fazer uma lista de Musicas para capa de um CD gravar em txt (Só pra aprender msm)

Será que teria uma maneira mais simples do que a que eu consegui fazer?

Meu codigo ficou assiM:

CD.java
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Scanner;


public class CD{
	
	public BufferedWriter criararq() throws Exception
	{
		OutputStream os = new FileOutputStream("myCd.mYeXt");
		OutputStreamWriter osw = new OutputStreamWriter(os);
		BufferedWriter bw = new BufferedWriter(osw);
		return bw;	
	}
	
	public void addFaixa(String faixa, BufferedWriter bw,boolean a) throws IOException
	{
		if (a == true)
		{
		bw.close();
		System.exit(1);
		}
		
		
		Scanner entrada = new Scanner(System.in);
		
		String args = faixa;
		
		bw.newLine();
		bw.write(args);
		bw.newLine();
		
		
		
	}

}

TesteCD.java

import java.io.BufferedWriter;
import java.io.IOException;
import java.util.Scanner;


public class TesteCD {

	public static void main(String[] args) throws Exception {
		Scanner entrada = new Scanner(System.in);

		CD c01 = new CD();
		
		BufferedWriter a = c01.criararq();
		boolean ok = true;
		int cont = 1;
		while(ok){
		System.out.println("Dig. o nome da faixa: ");
		String nom = entrada.nextLine();
		String conca = cont + ". " + nom;
		c01.addFaixa(conca,a,false);
		
		System.out.println("Quer digitar outro? ");
		String op = entrada.nextLine();
		if(op.equals("Nao"))
		{
			c01.addFaixa(nom,a,true);
		}
		cont++;
		}

	}

}

Abraço e obrigado desde já

1 Resposta

M

Não sei se considera mais simples, mas é outra forma de se fazer:

CD.java

import java.io.PrintWriter;
import java.util.ArrayList;

public class CD {

	private String titulo;
	private ArrayList<String> faixas;

	public CD(String titulo) {
		faixas = new ArrayList<String>();
		this.titulo = titulo;
	}

	public void gravarArquivo() throws Exception {
		PrintWriter pw = new PrintWriter(titulo + ".disk");
		pw.println("Album: " + titulo);
		pw.println();
		int cont = 1;
		for (String faixa : faixas) {
			pw.println(cont + ". " + faixa);
			cont++;
		}
		pw.close();
	}

	public void addFaixa(String faixa) {
		if (faixa == null) {
			throw new NullPointerException();
		}
		faixas.add(faixa);
	}

}

TesteCD.java

import java.util.Scanner;

public class TesteCD {

	public static void main(String[] args) throws Exception {
		Scanner entrada = new Scanner(System.in);
		System.out.print("Digite o titulo do CD: ");
		CD cd = new CD(entrada.nextLine());
		int i = 1;
		while (true) {
			System.out.print("Faixa " + i + ": ");
			cd.addFaixa(entrada.nextLine());
			System.out.print("Continuar inserindo? (S/n):");
			if ("N".equalsIgnoreCase(entrada.nextLine())) {
				break;
			}
			i++;
		}
		cd.gravarArquivo();
		System.out.println("Arquivo gravado!");
	}

}
Criado 10 de abril de 2009
Ultima resposta 11 de abr. de 2009
Respostas 1
Participantes 2