packageView;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Scanner;importModel.Adesao;importService.InsertService;publicclassMain{publicstaticvoidmain(String[]args)throwsIOException{Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);Adesaoa=newAdesao();while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\-");a.setIdade(parametros[0]);a.setCapital(parametros[1]);a.setProduto(parametros[2]);a.setMensalidade(parametros[3]);bw.write("insert into tabela values ("+a.getIdade()+",'"+a.getCapital()+"','"+a.getProduto()+"','"+a.getMensalidade()+"');\n");}bw.close();}}
A ajuda é, como faço para minha classe Main reconhecer o meu método com aquela variável scanner? Pois está dando erro somente no scanner, por ele está em outro pacote.
Pelo que eu vi voce está usando sua variavel scanner no contexto de main sem criá-la. Voce a criou em outro pacote, main não a conhece.
Tente o seguinte:
1º - criar outro objeto scanner dentro de class Main.
2º - atribua a ele o conteudo de seu objeto que está em outro pacote, para fazer isso tente o seguinte, deixe a classe InsertService como estatica, então a chame diretamente, e faça-a retornar seu objeto scanner. Assim quando ela retornar voce atribui ao seu objeto dentro do contexto de main.
publicclassMain{publicstaticvoidmain(String[]args)throwsIOException{Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);Adesaoa=newAdesao();Scannerscanner=newScanner(newFileReader("tabela.txt"));while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\-");a.setIdade(parametros[0]);a.setCapital(parametros[1]);a.setProduto(parametros[2]);a.setMensalidade(parametros[3]);bw.write("insert into tabela values ("+a.getIdade()+",'"+a.getCapital()+"','"+a.getProduto()+"','"+a.getMensalidade()+"');\n");}bw.close();}}
publicclassMain{Scannerscanner;publicstaticvoidmain(String[]args)throwsIOException{Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);Adesaoa=newAdesao();scanner=(Scanner)InsertService.lerArquivo();while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\-");a.setIdade(parametros[0]);a.setCapital(parametros[1]);a.setProduto(parametros[2]);a.setMensalidade(parametros[3]);bw.write("insert into tabela values ("+a.getIdade()+",'"+a.getCapital()+"','"+a.getProduto()+"','"+a.getMensalidade()+"');\n");}bw.close();}}
Se der algum problema de privilégio de acesso, experimente colocar o modificador public em frente ao método lerArquivo().
jkrfabio
Assim funcionou:
publicclassMain{staticScannerscanner;publicstaticvoidmain(String[]args)throwsException{Filearquivo=newFile("inserts.txt");FileWriterfw=newFileWriter(arquivo);BufferedWriterbw=newBufferedWriter(fw);Adesaoa=newAdesao();scanner=(Scanner)InsertService.lerArquivo();while(scanner.hasNext()){String[]parametros=scanner.nextLine().split("\\-");a.setIdade(parametros[0]);a.setCapital(parametros[1]);a.setProduto(parametros[2]);a.setMensalidade(parametros[3]);bw.write("insert into tabela values ("+a.getIdade()+",'"+a.getCapital()+"','"+a.getProduto()+"','"+a.getMensalidade()+"');\n");}bw.close();}}