2013-02-26 122 views
0

假設我在此格式的文件,如何讀取文件,並使用掃描儀

的值存儲在一個2維數組

我正在使用掃描儀類讀取文件。我想將這些值存儲在二維數組中,例如

y [0] [0] = 8,y [0] [1] = 15,y [1] [0] = 5 ,Y [2] [0] = 8。

我無法存儲這樣的值。我得到一個輸出

y [0] [0] = 8,y [0] [1] = 15,y [0] [3] = 5,y [0] [4] = 8 。

我想知道如何在文件中找到(EOL)行尾,以便它自動存儲在二維數組中。

public class gjd { 

public static void main(String[] args) { 

      java.io.File test2 = new java.io.File("c.txt"); 

      try 
      { 
       Scanner input = new Scanner(test2); 

       while (input.hasNextLine()){ 
        int y[][]=new int[10][10]; 
        for(int i=0;i<test2.length();i++) 
        { 
         for(int o=0;o<test2.length();o++) 
        { 
         y[i][o]=input.nextInt(); 


         System.out.println(y[i][o]); 


        } 

        } 

       } 
      } catch (Exception e){ 
      System.out.println("could not find file"); 
      } 

     } 
} 

回答

1

試試這個代碼....

  java.io.File test2 = new java.io.File("C:/c.txt"); 
      Scanner input = new Scanner(test2); 
      String arr[][]=new String[5][5]; 
      int i=0,j=0; 
      while(input.hasNext()) 
      { 
       String val=input.nextLine(); 
       j=0; 
       if(val.contains(" ")) 
       { 
        String str[]=val.split(" "); 
        int cn=str.length; 
        while(cn>0) 
        { 
         arr[i][j]=str[j]; 
         cn--; 
         j++; 
        } 
       } 
       else 
        arr[i][j]=val; 
       i++; 
      } 

      for(int i1=0;i1<5;i1++) 
      { 
       for(int j1=0;j1<5;j1++) 
        if(arr[i1][j1] != null) 
        System.out.print(arr[i1][j1]); 
       System.out.println(); 
      } 
+0

真棒傢伙,我能夠得到我想要的輸出。我開始非常喜歡java。謝謝。 – user2109988 2013-02-26 09:34:09

0

你不應該實例化一個數組每次都發現線路:

​​不應該在while循環。

你想要做什麼與文件的長度:test2.length()

0

,你可以使用第二個掃描儀的工作線從第一掃描儀

,那麼你可以檢查已經解析,是否有另一種是另一個int類型該行,如果需要,設置一個默認值。