前提・実現したいこと
Javaで外部のテキストファイルから数値を1行ずつ読み取って表示するプログラムを作っています。
FileInputStream、InputStreamReader、BufferedReaderを使ってファイルから1行ずつ読み取ってInteger.parseIntで数値として表示する実行時にエラーメッセージが発生しました。
発生している問題・エラーメッセージ
java.lang.NumberFormatException: For input string: "1"
該当のソースコード
hogehoge.java
java
1import java.io.*; 2class hogehoge { 3 public static void main(String args[]){ 4 String line; 5 BufferedReader br=null; 6 try{ 7 8 FileInputStream fi = new FileInputStream("source.txt"); 9 InputStreamReader iS = new InputStreamReader(fi,"utf-8"); 10 br = new BufferedReader(iS); 11 while((line=br.readLine())!=null){ 12 System.out.println(Integer.parseInt(line.toString())); 13 } 14 }catch(Exception e){ 15 System.out.println("ERROR"); 16 e.printStackTrace(); 17 }finally{ 18 try{ 19 br.close(); 20 }catch(IOException e){ 21 e.printStackTrace(); 22 } 23 } 24 } 25}
source.txt
1 3 5 7 9
試したこと
line.toString()をline.trim()にして試してみたが特に変化なし
Integer.parseIntを含まずSystem.out.println(line.toString());でと文字列として表示して実行した場合は問題ない
Integer.parseInt周りのエラーということは分かるのですが入力された文字列は整数であり数字以外の文字も含んでないためなぜこのようなエラーが出るかわかりません
補足情報(FW/ツールのバージョンなど)
java version "1.6.0_22"
回答2件
あなたの回答
tips
プレビュー