Boa Noite Pessoal,
Alguém pode me ajudar?
Meu programa mostra o seguinte erro:
Erro!java.lang.NullPointerExceptionCONSTRUÍDO COM SUCESSO (tempo total: 1 minuto 12 segundos)
Para mais esclarecimentos: quando escolho a opção 1. o programa é CONSTRUIDO COM SUCESSO.
quando escolho a opção 2. ele mostra esse erro.
Já fiz diversas modificações e não tive exito.
Esse abaixo o código:
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
try {
Scanner scannerInt = new Scanner(System.in);
Scanner scannerStr = new Scanner(System.in);
String caminhoArquivoClasse1 = ".\\files_classe1\\matrixclasse1.txt";
String caminhoArquivoClasse2 = ".\\files_classe2\\matrixclasse2.txt";
System.out.println ("Digite 1 para Classe1:");
System.out.println ("Digite 2 para Classe2:");
int opcao;
opcao = scannerInt.nextInt();
String nome1;
String nome2;
String nome3;
System.out.print("Digite o primeiro nome: ");
nome1 = scannerStr.nextLine();
System.out.print("Digite o segundo nome: ");
nome2 = scannerStr.nextLine();
System.out.print("Digite o terceiro nome: ");
nome3 =scannerStr.nextLine();
System.out.println();
if (opcao == 1){
Classe1.geraArquivos1(caminhoArquivoClasse1,nome1,nome2,nome3);
}else if (opcao == 2){
Classe2.geraArquivos2(caminhoArquivoClasse2,nome1,nome2,nome3);
}else System.out.print("Erro");
}catch (Exception ex){
System.out.print("Erro!"+ex);
}
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Classe1 {
private static String linhaAlterada;
private static String linhaStr;
private static String c1 = null, c2 = null, c3 = null, c4 = null;
private static String arqc1 = null, arqc2 = null, arqc3 = null, arqc4 = null;
private static int posAlt;
public static void geraArquivos1(String caminho, String nome1, String nome2, String nome3) throws Exception {
FileReader fr;
fr = new FileReader(caminho);
BufferedReader br = new BufferedReader(fr);
try{
for (int i = 0; i <= 2; i++) {
for (int j = 0; j <= 2; j++) {
for (int k = 0; k <= 2; k++) {
for (int l = 0; l <= 2; l++) {
switch (i) {
case 0:
c1 = nome1;
arqc1 = "1";
break;
case 1:
c1 = nome2;
arqc1 = "3";
break;
case 2:
c1 = nome3;
arqc1 = "6";
break;
}
switch (j) {
case 0:
c2 = nome1;
arqc2 = "1";
break;
case 1:
c2 = nome2;
arqc2 = "3";
break;
case 2:
c2 = nome3;
arqc2 = "6";
break;
}
switch (k) {
case 0:
c3 = nome1;
arqc3 = "1";
break;
case 1:
c3 = nome2;
arqc3 = "3";
break;
case 2:
c3 = nome3;
arqc3 = "6";
break;
}
switch (l) {
case 0:
c4 = nome1;
arqc4 = "1";
break;
case 1:
c4 = nome2;
arqc4 = "3";
break;
case 2:
c4 = nome3;
arqc4 = "6";
break;
}
File file = new File(".\\files_classe1\\"+arqc1+arqc2+arqc3+arqc4+".txt");
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
file.createNewFile();
linhaStr = br.readLine();
if (linhaStr == null) {
br.close();
fr.close();
fr = new FileReader(caminho);
br = new BufferedReader(fr);
linhaStr = br.readLine();
}
int alterou = 1;
while (linhaStr.indexOf("finalArq") == -1) {
posAlt = linhaStr.indexOf("altLQQ");
if (posAlt != -1) {
switch (alterou) {
case 1:
linhaAlterada = linhaStr.replace("altLQQ", c1);
alterou = 2;
break;
case 2:
linhaAlterada = linhaStr.replace("altLQQ", c2);
alterou = 3;
break;
case 3:
linhaAlterada = linhaStr.replace("altLQQ", c3);
alterou = 4;
break;
case 4:
linhaAlterada = linhaStr.replace("altLQQ", c4);
alterou = 1;
break;
}
bw.write(linhaAlterada);
bw.newLine();
linhaStr = br.readLine();
} else {
bw.write(linhaStr);
bw.newLine();
linhaStr = br.readLine();
}
}
bw.flush();
bw.close();
}
}
}
}
} catch (FileNotFoundException e) {
throw new FileNotFoundException("Arquivo nao encontrado: " + caminho);
} catch (IOException e) {
throw new IOException("Erro na leitura do arquivo", e);
} finally {
fr.close();
br.close();
}
}
}