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: :sweat_smile:](//www.guj.com.br/images/emoji/twitter/sweat_smile.png?v=5)
1 curtida
kkkkkkkkkkk acontece de boa . Qualquer coisa volte ai!
T+
1 curtida