2016-10-22 3 views
0

ちょっと、これは私がjavaにテキストファイルを読み込ませようとしているコードです。私はプログラムに読み込みたいが浮動小数点値をいくつか持っていますが、数値フォーマット例外を投げています。 txt "はANSIでエンコードされたメモ帳ファイルです。Java NumberFormatExceptionエラー

package javaapplication1; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.FileNotFoundException; 
import java.io.FileInputStream; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.OutputStreamWriter; 
import java.io.Writer; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 
import java.text.NumberFormat; 
import java.util.Locale; 
import java.lang.*; 
public class JavaApplication1 { 

int[][] adj=new int[50][50]; 
String line; 
public JavaApplication1(int[][] adj) { 
    // TODO Auto-generated constructor stub 
    this.adj=adj; 
} 
public void fileinput2() { 
try { 
     BufferedReader file=new BufferedReader(new FileReader("h.txt")); 
     try { 
      while((line=file.readLine())!=null){ 
       String[] s=line.split("\t+") 
            for(int i=0;i<s.length;i++) 
            { 
            float x=Float.valueOf(s[i].trim()); 
            System.out.print(x+" "); 
            } 
            System.out.println(); 
       } 
     } catch (NumberFormatException | IOException e) { 

      e.printStackTrace(); 
     } 

    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 

public static void main(String[] args) { 

     { 
    int[][] adj=new int[50][50]; 
JavaApplication1 m=new JavaApplication1(adj); 
m.fileinput2();   
} 
} 
} 

} 

h.txtは、最初の行

0 0.25 3 

Javaは私にはNumberFormatExceptionを与えているあるテキストファイルです: -

java.lang.NumberFormatException: For input string: "0.25" 
at  java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
at java.lang.Integer.parseInt(Integer.java:580) 
at java.lang.Integer.parseInt(Integer.java:615) 
at javaapplication1.JavaApplication1.fileinput2(JavaApplication1.java:35) 
at javaapplication1.JavaApplication1.main(JavaApplication1.java:70) 

は親切に私を助けてout.Thanks :)

+0

あなたは0 0.25 3は、タブANSないスペースでsparatedされていることを確認していますか? –

+0

ここで問題が表示されませんか? stacktrace Integer.parseInt()では、問題はコード内のどの行35が実際にはわからないということですが、 –

答えて

0

split行を

に変更してください
String[] s = line.split(" "); 

そして、あなたのfor loopに変更します

for (String string : s) { 
    if (!string.isEmpty()) { 
     float x = Float.parseFloat(string); 
     System.out.print(x + " "); 
    } 
} 
0
0.25 

はそのようには appropiateデータ型を使用して値を解析することができないので、有効な整数値ではありません。あなたの要件のためにダブルまたはフロート。

すなわちFloat.parseFloat(variable)

関連する問題