1

javaでテキストファイルを読み込んでその内容を二次元配列に追加したい。しかし、これらの値を配列に追加すると、Javaで範囲外の例外が発生します。

java.io.File test2 = new java.io.File("e:\\A.txt");

   BufferedReader bw =new BufferedReader(new FileReader("e:\\A.txt"));

   String s=bw.readLine();
   while(bw.readLine()!=null)
   {

       counterRow++;
   }

   System.out.println(counterRow);
   String sw=bw.readLine();

   String[] words=s.split(",");

   counterCol=words.length;
   System.out.println(words.length);


   @SuppressWarnings("resource")
Scanner input = new Scanner(test2);
   String Data[][]=new String[counterRow][counterCol];
   int i1=0,j1=0;
   while(input.hasNext())
   {
       String val=input.nextLine();
       j1=0;
       if(val.contains(","))
       {
           String str[]=val.split(",");
           int cn=str.length;
           while(cn>0)
           {
               Data[i1][j1]=str[j1];
               cn--;
               j1++;
           }
     }
         else
           Data[i1][j1]=val;
       i1++;
   }

私の入力ファイルは

69,79,82

72,82,84

39,70,75

69,88,68

38,72,61

39,60,40

36,32,44

50,71,55

36,47,47

80,81,90

エラー: スレッド「メイン」での例外 100sssssss java.lang.NullPointerException com.associa.mining.AssociateRuleMiningAlgo.main(AssociateRuleMiningAlgo.java:200) で

4

2 に答える 2

0

それは、EOFに達した後に読み込もうとしているからです

while(bw.readLine()!=null)  // read till EOF
{

   counterRow++;
}

System.out.println(counterRow);
String sw=bw.readLine();         // ERROR cant read, you have reached EOF

PS-変数「sw」を使用していないようです。

于 2013-11-07T14:13:51.650 に答える