Ola galera,preciso de ajuda…to precisando abrir um arquivo Header,mas nao estou conseguindo.Tenho o seguinte codigo abaixo ate agora,mas esta acusando uma falha,que é a seguinte:
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.BufferedReader.<init>(BufferedReader.java:76)
at java.io.BufferedReader.<init>(BufferedReader.java:91)
at array4.readMyFile(array4.java:70)
at array4.main(array4.java:20)
Exception in thread “main”
Tem uma linha que marquei com asterisco,o valor que esta sendo impresso é NULL,acho que esse nao deve ser o valor.
Coloquei essa linha so pra ver se acho o erro,mas nao estou conseguindo.
Se puderem me ajudar…agradeco.
Obrigado.
[code]try {
inReader = new BufferedReader(new FileReader(
“G:/tiago/Java/JavaProjects/array4/classes/Nutz_Esri.hdr”));
}
catch (FileNotFoundException e) {
System.out.println(“Achtung,InFile not found !!!”);
System.exit(1);
}
1o) Java é uma linguaguem que diferencia maiúscula de minúscula, logo as 2 variaveis que eu coloquei em destaque são diferentes e por isso que a primeira nunca recebe o valor esperado.
2o) Voce não está tratando a exceção de FileNotFoundException, ela ocorre quando o arquivo não é encontrado e não aberto. Trate o erro devidamente.
Seria algo assim (por alto):
FileReader H_infile = null;
try {
H_infile = new FileReader(
"G:/tiago/Java/JavaProjects/array4/classes/Nutz_Esri.hdr ");
}
catch (FileNotFoundException ex) {
System.out.println("não encontrei o arquivo, que pena");
return;
}
Ola,
fiz as modificacoes,mas os seguintes erros ainda aparecem:
pode me ajudar???
Obrigado
java.lang.NumberFormatException: For input string: “ncols 254;”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.valueOf(Integer.java:574)
at array4.readMyFile(array4.java:94)
at array4.main(array4.java:20)
public class NumberFormatException extends IllegalArgumentException
Thrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format.
String linha = "xllcorner 3372500"
try{
int valor = Integer.parseInt(linha.split(" ")[1]).intValue();
}catch(NumberFormatException e){
// do something
}
Atencao, eh importante colocar o tratamento de erro por causa de casos como esse: byteorder MSBFIRST
Dah uma estudada na API do String e do Integer q fica mais facil de entender…
Laime, se você ler o reply do caiofilipini, entenderá o que está causando o erro.
Mas eu explico de novo: você quer converter uma String em um inteiro. Mas imagine que esta String contém caracteres que não são números … assim sendo, fica impossível de converte-la para um inteiro.
Então o que você deve fazer é tratar essa String para que só contenha números antes de transforma-la em inteiro.
Você perguntará “Mas como eu faço isso?”
E eu te respondo: entre neste link aqui http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html
Ele contém todos os métodos de uma String, creio que se ler tudo, encontrará algum para fazer o que precisa para tirar a parte com letras e deixar só a parte com números.
Como você provavelmente vai precisar saber o que tem na primeira parte da linha, e depois traduzir o número, você vai precisar:
1- Ler a linha (isso já faz);
2- Separar a linha em dois, onde tem o espaço, com o método split() da classe String que deve ser mais ou menos assim:
// já li a linha aqui
String linhaSeparadaPorEspacos[] = linhaLida.split(" ");
3- Assim que fizer isso, fica no vetor de strings duas entradas, para o caso da linha “ncols 255”: a primeira é “ncols” e a outra “255”.
4- Aí você faz a conversão e guarda em algum lugar isso aí… mas observe que você não poderá usar espaços em branco no lado direito da linha, além do separador.
Falou Laime
Aliás… Laime é quase Lain, que eu ainda não consegui assistir nenhuma vez na Locomotion :-(… sem contar que eles não estavam colocando legenda, vê se pode… eerrrr… pode ignorar este parágrafo