Olá pessoal, estou com erro em uma variável. No código abaixo peço para ler um arquivo e imprimir no console e em outro arquivo a variável lida.
package General;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Locale;
import java.util.Scanner;
/**
*
* @author Edisson Sávio de Góes Maciel
* @version 1.0
* @since 12/2022
*
* This class reads the general variables to perform numerical simulation. Moreover, it also reads the computational
* indexes of the computational mesh, which are necessary to determine the geometric coordinates.
*
*/
public class InputDatas1
{ public static void main (String[] args) throws FileNotFoundException
{ InputDatas1Procedure(); }
public static void InputDatas1Procedure() throws FileNotFoundException
{// Entrance flux by archive
// Preparing to create Status1.dat
PrintStream psStatus1 = new PrintStream ("Status1.dat");
Scanner scanner = new Scanner(new File("Datas1.csv"));
while (scanner.hasNextLine())
{ String linha = scanner.nextLine();
Scanner linhaScanner = new Scanner(linha);
linhaScanner.useLocale(Locale.US);
linhaScanner.useDelimiter(",");
String text1 = linhaScanner.next();
String text2 = linhaScanner.next();
GeneralProperties genprop = new GeneralProperties();
// Defining general properties
switch(text2)
{// Defining the formulation
case "Thermal Equilibrium and Chemical Non-Equilibrium" : genprop.setFormulation(text2);
case "Thermochemical Non-Equilibrium" : genprop.setFormulation(text2);
case "Thermochemical Non-Equilibrium - Mars" : genprop.setFormulation(text2);
psStatus1.println(text1 + "," + text2);
System.out.println(genprop.getFormulation()); }
switch(text2)
{// Defining the gas chemical model
case "Five Species Chemical Model" : genprop.setGasModel(text2);
case "Seven Species Chemical Model" : genprop.setGasModel(text2);
case "Nine Species Chemical Model" : genprop.setGasModel(text2);
case "Eleven Species Chemical Model (Standard)" : genprop.setGasModel(text2);
case "Eleven Species Chemical Model (FULL)" : genprop.setGasModel(text2);
psStatus1.println(text1 + "," + text2);
System.out.println(genprop.getGasModel()); }
PhysicalProperties phyprop = new PhysicalProperties();
// Defining physical properties
switch(text2)
{// Defining the attack angle - Three values are possible
case "0.0e0" : phyprop.setAttackAngle(Double.parseDouble(text2));
case "5.0e0" : phyprop.setAttackAngle(Double.parseDouble(text2));
case "10.0e0" : phyprop.setAttackAngle(Double.parseDouble(text2));
psStatus1.println(text1 + "," + text2);
System.out.println(phyprop.getAttackAngle()); }
switch(text2)
{// Defining the Mach number
case "6.0e0" : phyprop.setMach(Double.parseDouble(text2));
case "8.78e0" : phyprop.setMach(Double.parseDouble(text2));
case "10.6e0" : phyprop.setMach(Double.parseDouble(text2));
case "14.8e0" : phyprop.setMach(Double.parseDouble(text2));
case "15.0e0" : phyprop.setMach(Double.parseDouble(text2));
case "23.9e0" : phyprop.setMach(Double.parseDouble(text2));
case "25.34e0" : phyprop.setMach(Double.parseDouble(text2));
case "26.0e0" : phyprop.setMach(Double.parseDouble(text2));
case "31.0e0" : phyprop.setMach(Double.parseDouble(text2));
case "32.0e0" : phyprop.setMach(Double.parseDouble(text2));
case "35.0e0" : phyprop.setMach(Double.parseDouble(text2));
case "39.0e0" : phyprop.setMach(Double.parseDouble(text2));
psStatus1.println(text1 + "," + text2);
System.out.println(phyprop.getMach()); }
O ponto é que ele lê a variável "formulation" e imprime corretamente, mas quando eu termino esta class que vou passar para a seguinte, a variável "formulation" aparece null. Eu acho que outras variáveis que eu mando ler também estão nesta situação, que parece ser um erro generalizado. Acima eu mostro dois trechos do código que estão em sequência, só para dizer que text2 é testado em vários switch e quando ele passa por um switch que já passou antes pode ser que ele anule o valor final por não haver modificação. Por exemplo, quando text2 = Saxena and Nair (2005) ele passa por um siwtch que tem "Thermal Equilibrium and Chemical Non-Equilibrium" que ele já passou antes e pode ser que por não mudar nada ele zere a resposta. É só um pensamento meu. Fico no aguardo de seu retorno, obrigado, Edisson Sávio.