É assim, pretendo ler um ficheiro de texto , transformar cada linha num vector de 2 elementos, e o 1º elemento pô-lo num vector, e o segundo noutro.
o ficheiro tem o seguinte txto
Compilo, e quando carrega o método lerFicheiro, obtenho o seguinte erro :
Exception in thread "main" java.lang.NullPointerException
at Cficheiro.lerFicheiro(Cficheiro.java:39)
at Cficheiro.main(Cficheiro.java:21)
Java Result: 1
Qualquer ajuda será bem-vinda
Código:
import java.io.File;
import java.io.FileWriter;
import javax.swing.JOptionPane;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Scanner;
public class Cficheiro {
public static void main(String[] args) throws FileNotFoundException{
Scanner fi=new Scanner(new File("jogadores.txt"));
String nome="";
int resp;
String msg="";
//Formatter fo=new Formatter(new File("jogadores.txt"));
String lin;
String[] pal;
String[] nomes=null;
int[] golos = null;
resp=Integer.parseInt(JOptionPane.showInputDialog("Introduza a sua opção :\n 1-Ler Ficheiro \n 2-Pesquisar \n 3-Marcar"));
switch (resp){
case 1 : lerFicheiro(fi,nomes,golos); break;
case 2 : pesquisar(fi); break;
case 3 : marcar(fi); break;
}
}
private static void lerFicheiro(Scanner fi, String[] nomes, int[] golos) throws FileNotFoundException{
String lin;
String[] pal;
String msg="";
int cont=0;
while(fi.hasNextLine()){
lin = fi.nextLine();
pal = lin.split(":");
for(int i=0; i<pal.length; i++){
nomes[i]=pal[0];
golos[i]=Integer.parseInt(pal[1]);
}
cont++;
}
fi.close();
for (int i=0;i<cont;i++)
msg+=nomes[i]+" : "+golos[i]+" golos.";
JOptionPane.showMessageDialog(null,msg);
}
private static void marcar(Scanner fi) throws FileNotFoundException{
String lin;
int cont=0;
int flag=0;
String[] pal;
String msg="";
String nome=JOptionPane.showInputDialog("Insira o nome do jogador a incrementar os golos : ");
while(fi.hasNextLine()){
cont++;
lin = fi.nextLine();
pal = lin.split(":");
for(int p=0; p<pal.length; p++){
if (pal[p].equals(nome)){
//MARCA UM GOLO!
}
flag=1;
}
}
if (flag==0)
JOptionPane.showMessageDialog(null,"Jogador não encontrado");
}
private static void pesquisar(Scanner fi) throws FileNotFoundException{
int flag=0;
String lin;
int cont=0,pos=0;
String[] pal;
String msg="";
String nome=JOptionPane.showInputDialog("Insira o nome do jogador a pesquisar : ");
while(fi.hasNextLine()){
cont++;
lin = fi.nextLine();
pal = lin.split(":");
for(int p=0; p<pal.length; p++){
if (pal[p].equals(nome)){
flag=1;
pos=cont;
}
}
}
if (flag==1)
JOptionPane.showMessageDialog(null,"O jogador "+nome+" está na posição "+pos+" .");
else
JOptionPane.showMessageDialog(null,"Jogador não encontrado");
}
}
Código:
Postiga:20
Lisandro:10
Quaresma:13
Leandro Lima:7
Compilo, e quando carrega o método lerFicheiro, obtenho o seguinte erro :
Exception in thread "main" java.lang.NullPointerException
at Cficheiro.lerFicheiro(Cficheiro.java:39)
at Cficheiro.main(Cficheiro.java:21)
Java Result: 1
Qualquer ajuda será bem-vinda