我把重要的几条写出来
StringBuffer sb= new StringBuffer("");String inStr = "";
String str = null;FileReader inputStream = null;
BufferedReader inputBuffer = null;while((str = inputBuffer.readLine()) != null)
{
sb.append(str+"\n");
inStr  += str;
String a[] = str.split(",");
}
现在想把a[]里的内容复制到b[][]这个二维数组,b的行和列都是已知,请问如何复制? 

解决方案 »

  1.   

    String b[][];
    就是b[][]的行和列已经从文件中获取
    所以就当他们是已知的就好,可以用row和width代替
      

  2.   

    for(int i=0,int m=0,int n=0;i<a.length;i++){
       b[m][n]=a[i];     //m为行,n为列
       n++;
       if(n>b[m].length){
          n=0;
          m++;
          if(m>b.length) {
             System.out.println("数组长度太大");
             break;
          }
       }
    }
      

  3.   

    报错Exception in thread "main" java.lang.NullPointerException
    是什么意思啊
      

  4.   

    试过两个for,不知道为什么老报错
      

  5.   


    就是我做了一个迷宫程序,地图文件是写在记事本里的,想这样:wall,wall,,wall,,exit.....地图文件的第一行可以获取到地图的大小,也就是二维数组的行和列。本来是想直接读取进二维数组,但发现用不了split(",")这个方法,所以才出现上面那个先读进一维数组,然后我想把那个一维数组再复制到二维数组作为地图,这样描述不知道是否能清楚些?如果你知道怎么能将该文件直接读进二维数组也好,实在想不到什么方法读进去
      

  6.   

    import java.io.*;public class Testarr {
    public static void main(String[] args)throws Exception{
    int[] a={1,2,3,4,5,6,7,8};
    String[] arrlen=new String[2];
    int rows;
    int cols;
    FileReader fr=new FileReader("G:\\Demo\\Testcode\\arr.txt");
    int b;
    int i=0;
    while((b=fr.read())!=-1){
    arrlen[i++]=(char)fr.read()+"";
    }
    fr.close();
    int k=0;
    rows=Integer.valueOf(arrlen[0]);
    cols=Integer.valueOf(arrlen[1]);
    int[][] newarr=new int[rows][cols];
    for(i=0;i<rows;i++){
    for(int j=0;j<cols;j++){
    newarr[i][j]=a[k++];
    System.out.print(newarr[i][j]+"  ");
    }
    System.out.println();
    }
    }
    }
      

  7.   

        int[] a={1,2,3};
    int[][] b=new int[3][3];
     b[0]=Arrays.copyOf(a,3);每次读入一行,然后拷贝到二维数组中
      

  8.   

    while((str = inputBuffer.readLine()) != null)
    {
        sb.append(str+"\n");
        inStr += str;
        String a[] = str.split(",");
    }//假定数组容量是这样的,随便修改,但是一定要满足b[][]跟a[]的容量是一样的
      String[][] b = new String[5][4];
      //外面两层,控制二维数组。
      for (int x = 0; x < b.length ; x++){
         for (int y = 0 ;y < b[x].length ; y++){
          //第三层控制a[]数组,遍历a,并将a添加到b中 ,  
             for (int z = 0 ;z < a.length ; z++){
                 b[x][y] = a[z];
               }
            }
         }
    看看这样行不行,我这里没编译器,不知道有错没有。