Ajuda com métodos

Tenho o seguinte código, que peço a ele que leia um arquivo de texto meu

package Service;

import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

import Model.Adesao;

public class InsertService 
{
	public void InsertService() throws IOException
	{
		Scanner scanner = new Scanner(new FileReader("tabela.txt"));
	}
	
}

Aqui é a parte do código que está com erro

[code]
package View;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import Model.Adesao;
import Service.InsertService;

public class Main
{
public static void main(String[] args) throws IOException
{

	File arquivo = new File("inserts.txt");
	FileWriter fw = new FileWriter(arquivo);
	BufferedWriter bw = new BufferedWriter(fw);
	
	Adesao a = new Adesao();
	
	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();
}

}[/code]

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.

Assim?

package Service;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

import Model.Adesao;

public class InsertService 
{
	static void lerArquivo() throws Exception
	{
		Scanner scanner = new Scanner(new FileReader("tabela.txt"));
	}
}

[code]
public class Main
{
public static void main(String[] args) throws IOException
{
File arquivo = new File(“inserts.txt”);
FileWriter fw = new FileWriter(arquivo);
BufferedWriter bw = new BufferedWriter(fw);

	Adesao a = new Adesao();
	
	Scanner scanner = new Scanner(new FileReader("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();
}

}[/code]

Quase … tente o seguinte:

package Service;  
  
import java.io.FileNotFoundException;  
import java.io.FileReader;  
import java.io.IOException;  
import java.util.Scanner;  
  
import Model.Adesao;  
  
public class InsertService   
{  
    static Object lerArquivo() throws Exception  
    {  
        Scanner scanner = new Scanner(new FileReader("tabela.txt"));  
    	return scanner;
    }  
} 

public class Main   
{  
	Scanner scanner;
    public static void main(String[] args) throws IOException   
    {  
        File arquivo = new File("inserts.txt");  
        FileWriter fw = new FileWriter(arquivo);  
        BufferedWriter bw = new BufferedWriter(fw);  
          
        Adesao a = new Adesao();  
          
        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().

Assim funcionou:

[code]
public class Main
{
static Scanner scanner;
public static void main(String[] args) throws Exception
{
File arquivo = new File(“inserts.txt”);
FileWriter fw = new FileWriter(arquivo);
BufferedWriter bw = new BufferedWriter(fw);

	Adesao a = new Adesao();
	
	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();
}

}[/code]

public class InsertService 
{
	public static Object lerArquivo() throws Exception
	{
		Scanner scanner = new Scanner(new FileReader("tabela.txt"));
		return scanner;
	}
}

Muito obrigado pela sua ajuda! (=

That’s OK. Bom saber que consegui ajudá-lo. Até a próxima! :wink: