首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

将文件中读出的字符串转化成二位数组的有关问题

2012-01-21 
将文件中读出的字符串转化成二位数组的问题以下是我将文件中读出的字符串转化成二位数组的代码,这段代码编

将文件中读出的字符串转化成二位数组的问题

        以下是我将文件中读出的字符串转化成二位数组的代码,这段代码编译通过,执行时没有出现任何结果,不知道问题出在哪里?请大家指教!
以下是代码:

/*----------------------------------*/
import   java.io.*;

public   class   readfile{
public     String[][]   arr;
public   void   getdata(){
try{
//建立文件对象
BufferedReader   readStream   =   new   BufferedReader(new   FileReader( "D:\\eclipse\\workspace\\test1\\src\\x.txt "));
int   scount=0;
String     buff;
                                                      //动态创建它的两维部分
for(int   i   =   0,j   =   2;i   <   arr.length;i++){      
                                                        arr[i]=   new   String[j];          
                        }
arr   =   new   String[16][];
  //初始化数组的值
                            for(int   i   =   0;   i   <   arr.length;   i++)       {      
                                   
                                    while((buff=readStream.readLine())!=null){
                                    for(int   j   =   0;   j   <   arr[i].length;   j++)       {  
                                            if(j%2==0)  
                                                            arr[i][j]   =   buff.substring(0,   12);//获取字符串其中一部分的串
                                            else
                                            arr[i][j]   =   buff.substring(14,29);
                                                  scount++;
                                    }      
                                    }
    }

//输出二维数组    
for(int     i   =0;   i   <   arr.length;   i++){      


                                    for(int     j   =   0;   j   <   arr[i].length;   j   ++)   {      
                                                    System.out.print( "       "       +   arr[i][j]);      
                                    }      
                                    System.out.println( " ");      
                            }
}catch   (FileNotFoundException   e){
e.printStackTrace();
}catch   (IOException   exp){
exp.printStackTrace();
}

}

  public       static       void       main(String[]       args)       {      
                  new       readfile();      
      }      
}

文件x中的内容为:
8613825138980|460005103236984|
8613535143750|460005110339520|
8613725105950|460005112230392|
8613560416041|460000330616041|
8613642768780|460002761408780|
8613710450540|460000402142193|
8613697481540|460007431916497|
8613609740331|460009746005181|
8613560464731|460000340614731|
8613802957670|460008848162189|
8613710029530|460000022109530|
8613610038340|460000021136069|
8613570416011|460000400719770|
8613711560271|460001562100271|
8613533274350|460003270304350|
8613422277440|460020222707440|


/*----------------------------------*/
  另外我写了一个这个的测试代码,也还是这样,执行后没有出现任何结果,原因?
/*----------------------------------*/
public   class   test   {
public       String[][]       arr;    
public   test(){
arr       =       new       String[0][];
for(int   i       =       0,j       =       2;       i       <       arr.length;       i++)       {      
                        arr[i]       =       new       String[j];  
                }  
String   s   = "4184159415415 ";
for(int   i   =   0;i   <   arr.length;   i++)   {    
                          for(int   k=0;k <s.length();k++)   {
                                for(int   j   =   0;   j   <   arr[i].length;j++)   {
                                if(j%2==0)


                                          arr[i][j]   =   s.substring(0,   5);
                                    else    
                                      arr[i][j]   =   s.substring(6,   s.length());
                }
}
}
  for(int       i     =       0;       i       <       arr.length;       i       ++)       {      
                          for(int       j       =       0;       j       <       arr[i].length;       j       ++)       {      
                                          System.out.print( "   "       +       arr[i][j]);      
                          }      
                          System.out.println( " ");      
                  }                  
}
  public       static       void       main(String[]       args)       {      
                  new       test();      
      }      
}
/*----------------------------------*/

[解决办法]
首先,你在new 一个readfile对象时,并没有调用这个对象的getdata()方法,因此也就不会执行里面的代码,
改为
readfile rf=new readfile()
rf.getdata();

其次,你的getdata()方法,也是不能执行的,你都没有初始化 arr的大小,只是new 了一个数组,并没分配空间给他,然后你就调用arr.length,这样是不允许的,你可以自己试下

热点排行
Bad Request.