Olá galerinha sou nova por aqui e preciso de ajuda. Meu código não está lendo meu arquivo completo, ele lê 3 campos e depois não lê mais, só que eu possuo 6 campos no arquivo; fora que fica dando um erro de caminho desconhecido na leitura de um dos campos, em que eu recebo como string do arquivo txt e converto para inteiro antes de armazenar. Estou trabalhando com um ArrayList antes de sobrescrever os dados no arquivo txt novamente. Assim: o código lê o arquivo por campos separados por || e armazena nas respectivas variáveis encapsuladas e acessadas por parte de um Array elas são manipuladas e por fim sobrescreve o arquivo ao terminar.
código main abaixo :
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class MainBanco {
public static void main(String[] args) {
/*Variaveis cliente*/
int cod=0;
String nome=null;
String cpf=null;
String end=null;
String tel=null;
String situ=null;
int test=0;
int tes=0;
/*Variaveis conta*/
String agencia=null;
String conta=null;
float saldo=0;
String situ1=null;
int cod_cliente=0;
float n = 0;
int num=0;
float sa=0;
float sa1=0;
@SuppressWarnings("resource")
Scanner ent = new Scanner(System.in);
ArrayList<Cliente> cli = lerCliente("C:\\Users\\ADMIN\\Desktop\\tab\\Banco\\src\\Cliente.txt");
ArrayList<Conta> cont = lerConta("C:\\Users\\ADMIN\\Desktop\\tab\\Banco\\src\\Conta.txt");
/*for(int i = 0; i < cli.size(); i++){
System.out.println(cli.get(i));
}
for(int i = 0; i < cont.size(); i++){
System.out.println(cont.get(i));
}
prods3.add(new Cliente(7, "Gggg","000.000.000-00","rua A n777",84757595,"A"));
salvarProdutos(prods3, "C:\\Users\\ADMIN\\Desktop\\tab\\PProduto\\src\\Cliente.txt");
*/
/*INICIO*/
System.out.println("BEN-VINDO O QUE DESEJA REALIZAR?");
System.out.println("Digite 1 para acessar sua conta");
System.out.println("Digite 2 para ver seus dados");
System.out.println("Digite 3 para cadastrar cliente");
System.out.println("Digite 4 para cadastrar conta");
test=ent.nextInt();
/*AÇÕES*/
if(test==1){
System.out.println("Digite seu codigo de cliente");
tes=ent.nextInt();
for(Conta c: cont){
if(tes==c.getCod_cliente()){
/*Opções */
System.out.println("BEM-VINDO A SUA CONTA!!");
System.out.println("Opções de Conta: ");
System.out.println("digite 1 para ver o saldo");
System.out.println("digite 2 para saque");
System.out.println("digite 3 para transferência");
num=ent.nextInt();
/*Funções*/
if(num==1){
for(Conta c1: cont){
if(tes==c1.getCod_cliente()){
System.out.println(c1.getSaldo());
}
}
}
if(num==2){
for(Conta c1: cont){
if(tes==c1.getCod_cliente()){
System.out.println(c1.getSaldo());
sa=(float) c1.getSaldo();
}
while(n!=1){
System.out.println("quanto deseja sacar?");
n=ent.nextInt();
if(sa>=n){
sa=sa-n;
c1.setSaldo(sa);
System.out.println("Saque realizado com sucesso!!");
System.out.println("Novo saldo: "+ c1.getSaldo());
n=1;
}else{
System.out.println("Saldo insuficeiente!!");
System.out.println("Digite outro valor para saque ou digite 1 para sair");
n=ent.nextInt();
}
}
}
}
if(num==3){
for(Conta c1: cont){
if(tes==c1.getCod_cliente()){
System.out.println(c1.getSaldo());
sa=(float) c1.getSaldo();
}
}
System.out.println("Digite o codigo do cliente para o qua deseja transferir");
test=ent.nextInt();
for(Cliente c1 : cli){
if(test==c1.getCodigo()){
System.out.println("Quanto deseja tranferir para: "+ c1.getNome());
n=ent.nextInt();
while(n!=1){
for(Conta c2: cont){
if(sa>=n){
for(int i = 0;i<=cli.size();i++){
if(c1.getCodigo()==test){
sa1=c2.getSaldo();
sa1=sa1+n;
c2.setSaldo(sa1);
if(c1.getCodigo()==tes){
sa=sa-n;
c2.setSaldo(sa);
System.out.println("Transferencia realizado com sucesso!!");
System.out.println("Novo saldo: "+ c2.getSaldo());
n=1;
}
}else{
System.out.println("Saldo insuficeiente!!");
System.out.println("Digite outro valor para transferencia ou digite 1 para sair");
n=ent.nextInt();
}
}
}
}
}
}
}
}
}
}
}
if(test==2){
System.out.println("Digite seu codigo de cliente");
tes=ent.nextInt();
for(Cliente c1: cli){
if(tes==c1.getCodigo()){
System.out.println(cli.get(tes-1));
}
}
}
if(test==3){
/*Cadastro de cliente*/
System.out.println("Cadastro de cliente:");
for(Cliente c1: cli){
System.out.println("Digite o codigo: ");
cod=ent.nextInt();
c1.setCodigo(cod);
System.out.println("Digite o nome: ");
nome=ent.next();
c1.setNome(nome);
System.out.println("Digite o cpf: ");
cpf=ent.next();
c1.setCpf(cpf);
System.out.println("Digite o End: ");
end=ent.next();
c1.setEnd(end);
System.out.println("Digite o Tel: ");
tel=ent.next();
c1.setTel(tel);
System.out.println("Digite o situação A- para ativo e i- para inativo: ");
situ=ent.next();
c1.setSitu(situ);
}
}
if(test==4){
/*Cadastro de conta*/
System.out.println("Cadastro de conta:");
System.out.println("Digite o codigo do Cliente: ");
cod_cliente=ent.nextInt();
for(int i = 0; i < cli.size(); i++){
for(Cliente c1: cli){
if(cod_cliente==c1.getCodigo()&& c1.getSitu()=="A"){
for(Conta co: cont){
co.setCod_cliente(cod_cliente);
System.out.println("Digite a agencia: ");
agencia=ent.next();
co.setAgencia(agencia);
System.out.println("Digite a conta: ");
conta=ent.next();
co.setConta(conta);
System.out.println("Digite o saldo: ");
saldo=ent.nextFloat();
co.setSaldo(saldo);
System.out.println("Digite a situação A- para ativo e i- para inativo: ");
situ1=ent.next();
co.setSitu(situ1);
}
System.out.println("Conta cadastrada com sucesso!!");
n=1;
}else{
System.out.println("Codigo inexistente ou inativo para: "+ cli.get(i));
}
}
}
}
for(int i = 0; i < cli.size(); i++){
salvarClientes(cli, "C:\\Users\\ADMIN\\Desktop\\tab\\Banco\\src\\Cliente.txt");
}
for(int i = 0; i < cont.size(); i++){
salvarContas(cont, "C:\\Users\\ADMIN\\Desktop\\tab\\Banco\\src\\Conta.txt");
}
}
/* leitura do arquivo*/
public static ArrayList<Cliente> lerCliente(String nomeArquivo) {
ArrayList<Cliente> prods = new ArrayList<Cliente>();
Scanner sc;
try {
FileReader fr = new FileReader(nomeArquivo);
sc = new Scanner(fr);
sc.useDelimiter("\\||\\n");
while (sc.hasNext())
{
String cod=sc.next();
int codigo=Integer.parseInt(cod);
System.out.println(cod);
String nome = sc.next();
System.out.println(nome);
String cpf = sc.next();
System.out.println(cpf);
String end = sc.next();
System.out.println(end);
String tel = sc.next();
System.out.println(tel);
String situ = sc.next();
System.out.println(situ);
Cliente c = new Cliente(codigo, nome, cpf, end, tel, situ);
prods.add(c);
//sc.nextLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return prods;
}
public static ArrayList<Conta> lerConta(String nomeArquivo) {
ArrayList<Conta> prods1 = new ArrayList<Conta>();
Scanner sc;
try {
FileReader fr = new FileReader(nomeArquivo);
sc = new Scanner(fr);
sc.useDelimiter("\\||\\n");
if(sc.hasNext()){
while (sc.hasNext())
{
String agencia = sc.next();
System.out.println(agencia);
String conta = sc.next();
System.out.println(conta);
String saldo = sc.next();
float saldo1 = Float.parseFloat(saldo);
System.out.println(saldo1);
String situ = sc.next();
System.out.println(situ);
String cod_cliente1 = sc.next();
int cod_cliente=Integer.parseInt(cod_cliente1);
System.out.println(cod_cliente);
Conta con = new Conta(agencia,conta, saldo1, situ, cod_cliente);
prods1.add(con);
//sc.nextLine();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return prods1;
}
/* escrita do arquivo*/
public static void salvarClientes(ArrayList<Cliente> prods, String nomeArquivo) {
PrintWriter pw;
try {
pw = new PrintWriter(nomeArquivo);
for(int i = 0; i < prods.size(); i++)
{
Cliente p = prods.get(i);
String sp = p.getCodigo() + "||" + p.getNome() + "||" + p.getCpf() + "||" + p.getEnd() + "||" + p.getTel() + "||" + p.getSitu();
pw.println(sp);
}
pw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void salvarContas(ArrayList<Conta> prods, String nomeArquivo) {
PrintWriter pw;
try {
pw = new PrintWriter(nomeArquivo);
for(int i = 0; i < prods.size(); i++)
{
Conta p = prods.get(i);
String sp = p.getAgencia() + "||" + p.getConta() + "||" + p.getSaldo() + "||" + p.getSitu() + "||" + p.getCod_cliente();
pw.println(sp);
}
pw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
ERRO:
Exception in thread “main” java.lang.NumberFormatException: For input string: "rua A n 66"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at MainBanco.lerCliente(MainBanco.java:257)
at MainBanco.main(MainBanco.java:34)
Arquivo TXT Cliente:
1||Maria||222.666.555-55||rua A n 66||989076678||A
2||Moura||333.666.555-55||rua C n 77||989076578||A
3||Mario||578.666.555-55||rua B n 22||989074478||A
4||Julio||212.666.555-55||rua W n 77||989076228||A
Arquivo TXT Conta:
66-7||889||1000.0||A||1
76-7||855||100.0||A||2
55-7||223||600.0||A||3
99-7||999||500.0||A||4