Frmichetti 20 de jan. de 2017
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
drsmachado 20 de jan. de 2017
Qual o erro e onde aparece?
douglasmoura 20 de jan. de 2017
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 );
}
}
Solucao aceita
Frmichetti 20 de jan. de 2017
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 () + ";" ) ;
}
}
}
douglasmoura 20 de jan. de 2017 1 like
Obrigado man , era isso mesmo , né fogo
Frmichetti 20 de jan. de 2017 1 like
kkkkkkkkkkk acontece de boa . Qualquer coisa volte ai!
T+