Erro na hora de ler dados de uma conta armazenados num arquivo de texto

public class Conta {

String cliente;
double saldo;
int numero;

public Conta(String cliente, int number) {
	setCliente(cliente);
	setNumero(number);
	this.saldo = 0;
}

public String getCliente() {
	return cliente;
}

public void setCliente(String cliente) {
	this.cliente = cliente;
}

public void setNumero(int number) {
	this.numero = number;
}

public int getNumero() {
	return this.numero;
}

public double getSaldo() {
	return saldo;
}

public void setSaldo(double saldo) {
	this.saldo = saldo;
}

@Override
public String toString() {
	return this.getCliente() +";" +this.getNumero();

}

}

Você tem a outra parte do código da leitura dos dados? ai só tem o POJO Conta.
Caso não tenha , vai testando isso : http://www.codejava.net/java-se/file-io/how-to-read-and-write-text-file-in-java

Qual o erro e onde aparece?

Eu tenho man , é minha primeira postagem e me atrapalhei na hora de fazer , segue a outra parte do código (onde o erro aparece na linha do onde tento fazer o parse)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;

public class Arquivo4 {

private Path path = Paths.get("C:/Users/Douglas/workspace/IO/src/Contas/arquivoContas.txt");
private Charset utf8 = StandardCharsets.UTF_8;
private ArrayList<Conta> accounts;

public Arquivo4() {
}

public void armazenarContas(ArrayList<Conta> accounts) throws IOException {
	try (BufferedWriter writer = Files.newBufferedWriter(path, utf8)) {
		for (Conta conta : accounts) {
			writer.write(conta.getCliente() + " ; " + conta.getNumero());
		}
	}
}

public ArrayList<Conta> recuperarContas() throws IOException {
	accounts = new ArrayList<Conta>();
	try (BufferedReader reader = Files.newBufferedReader(path, utf8)) {
		String line = null;
		while ((line = reader.readLine()) != null) {
			String[] t = line.split(";");
			Conta c = new Conta(t[0], Integer.parseInt(t[1]));
			accounts.add(c);
		}
	}
	return accounts;
}

public static void main(String[] args) {

	ArrayList<Conta> accounts = new ArrayList<>();
	accounts.add(new Conta("Douglas", 123));
	accounts.add(new Conta("Henrique", 124));
	accounts.add(new Conta("Gustavo", 125));
	accounts.add(new Conta("Emerson", 126));

	Arquivo4 arq = new Arquivo4();
	try {

		arq.armazenarContas(accounts);

	} catch (IOException e) {

		e.printStackTrace();
	}
	try {

		arq.recuperarContas();

	} catch (IOException e) {

		e.printStackTrace();
	}

	accounts.forEach(System.out::println);

}

}

Exception in thread “main” java.lang.NumberFormatException: For input string: " 123Henrique "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at teste.Arquivo4.recuperarContas(Arquivo4.java:37)
at teste.Arquivo4.main(Arquivo4.java:64)

parece que Tu so se esqueceu de botar um ponto e virgula ao final do numero da conta das pessoas
ele ta tentando fazer parse para int disto aqui 123Henrique e crashando.

coloquei assim e funcionou

public void armazenarContas(ArrayList<Conta> accounts) throws IOException {
	try (BufferedWriter writer = Files.newBufferedWriter(path, utf8)) {
		for (Conta conta : accounts) {
			writer.write(conta.getCliente() + ";" + conta.getNumero() + ";");
		}
	}
}

Obrigado man , era isso mesmo , né fogo :sweat_smile:

1 curtida

kkkkkkkkkkk acontece de boa . Qualquer coisa volte ai!
T+

1 curtida