Pessoal meu problema é o seguinte, tenho dados numeros que forma armazenados em um arquivo texto, cada linha possui quadro informações, então estou usando StringTokenizer para separa-los, depois preciso converte-los em numeros, e quando executo o programa está gerando uma exceção, que esta a baixo:
Exception in thread “main” java.lang.NumberFormatException: 0 -1.0
at java.lang.Integer.parseInt(Integer.java:423)
at java.lang.Integer.parseInt(Integer.java:463)
at CapturaDados.leArquivo(CapturaDados.java:38)
at CapturaDados.main(CapturaDados.java:68)
C:\gl3d>
Estou também enviado o arquivo java e o .txt.
Se alguem puder me ajudar…help
p5f8
Março 29, 2005, 3:26pm
#2
cara você não quer utilizar o método substring do método:
exemplo da sua 1º linha
0;-1.0;0.0;0.0;0.69813174
String stringCampo1 = linha.substring(0,1);
String stringCampo2 = linha.substring(2,6);
int intCampo2 = Integer.parseInt(stringCampo2);
System.out.println("campo1 = " + stringCampo1);
System.out.println("campo2 = " + intCampo2);
a saida deve ser algo como:
campo1 = 0 campo2 = -1.0
espero ter ajudado
Fiz como vc falou mais o problema está quando uso conversor de string para numerico, produz a seguinte excecao
Exception in thread “main” java.lang.NumberFormatException: -1
at java.lang.Integer.parseInt(Integer.java:414)
at java.lang.Integer.parseInt(Integer.java:463)
at CapturaDados.leArquivo(CapturaDados.java:33)
at CapturaDados.main(CapturaDados.java:53)
C:\gl3d>
abaixo está meu codigo:
import java.io .*;
import java.util.StringTokenizer;
public class CapturaDados
{
public static void leArquivo() {
File arquivo = new File("gl3d.txt");
FileInputStream fileInputStream;
InputStreamReader inputStreamReader;
LineNumberReader lineNumberReader;
String linha;
/* ABRIR ARQUIVO */
try {
fileInputStream = new FileInputStream(arquivo);
inputStreamReader = new InputStreamReader(fileInputStream);
lineNumberReader = new LineNumberReader(inputStreamReader);
/* LEITURA LINHA A LINHA DO ARQUIVO */
while (lineNumberReader.ready()) {
linha = lineNumberReader.readLine();
/* IMPRIME LINHA */
String stringCampo1 = linha.substring(0,1);
String stringCampo2 = linha.substring(3,6);
int intCampo2 = Integer.parseInt(stringCampo2);
System.out.println("campo1 = " + stringCampo1);
System.out.println("campo2 = " + intCampo2);
}
} catch (FileNotFoundException fileNotFoundException) {
System.out.println(fileNotFoundException);
} catch (IOException ioException) {
System.out.println(ioException);
}
}
public static void main(String args[]) {
CapturaDados capturadados = new CapturaDados();
capturadados.leArquivo();
}
}
Estou usando java 1.3.1, devido problemas de implementação
p5f8
Março 30, 2005, 1:45am
#4
tai como ficou…
[code]
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.StringTokenizer;
public class CapturaDados
{
public void leArquivo() {
File arquivo = new File(“gl3d.txt”);
FileInputStream fileInputStream;
InputStreamReader inputStreamReader;
LineNumberReader lineNumberReader;
String linha;
/* ABRIR ARQUIVO */
try {
fileInputStream = new FileInputStream(arquivo);
inputStreamReader = new InputStreamReader(fileInputStream);
lineNumberReader = new LineNumberReader(inputStreamReader);
/* LEITURA LINHA A LINHA DO ARQUIVO */
while (lineNumberReader.ready()) {
linha = lineNumberReader.readLine();
System.out.println(linha);
/* IMPRIME LINHA */
StringTokenizer st = new StringTokenizer(linha,";");
while( st.hasMoreElements() ) {
String campo1 = st.nextToken();
String campo2 = st.nextToken();
String campo3 = st.nextToken();
String campo4 = st.nextToken();
String campo5 = st.nextToken();
int intCampo1 = Integer.parseInt(campo1);
double doubleCampo2 = 0.0d;
try {
doubleCampo2 = Double.parseDouble(campo2);
} catch (Exception e) {
doubleCampo2 = 0.0f;
}
double doubleCampo3 = 0.0d;
try {
doubleCampo3 = Double.parseDouble(campo3);
} catch (Exception e) {
doubleCampo3 = 0.0f;
}
double doubleCampo4 = 0.0d;
try {
doubleCampo4 = Double.parseDouble(campo4);
} catch (Exception e) {
doubleCampo4 = 0.0f;
}
double doubleCampo5 = 0.0d;
try {
doubleCampo5 = Double.parseDouble(campo5);
} catch (Exception e) {
doubleCampo5 = 0.0d;
}
System.out.println("campo1 =" + intCampo1);
System.out.println("campo2 =" + doubleCampo2);
System.out.println("campo3 =" + doubleCampo3);
System.out.println("campo4 =" + doubleCampo4);
System.out.println("campo5 =" + doubleCampo5);
}
}
lineNumberReader.close();
} catch (FileNotFoundException fileNotFoundException) {
fileNotFoundException.printStackTrace();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
public static void main(String args[]) {
CapturaDados capturadados = new CapturaDados();
capturadados.leArquivo();
}
}[/code]