我想读取b.txt文件,读入s中,b.txt的格式是:变变变
nnnn
扭扭捏捏呢
零零落落
大大大大(一个词语占一行,400多行)然后把s用split把存在info[]数组中。
结果打印出无穷个info[i]
                info[i]
                info[i]
                 
                info[i]
预期结果是打印出这些词语。
import java.io.*;
import java.util.*;public class ReadToArray{ public static void main(String[] args){
String s = new String(); 
String[] info = new String[7000];
int i ;
try { 

         FileInputStream f = new FileInputStream("D:/java workspace/read and write/src/rankkey.txt"); 
         BufferedReader keyList=new BufferedReader(new InputStreamReader(f));
          s = keyList.readLine();
 while(s!=null)  //判断是否读到了最后一行
 { 
  info = s.split("\r");
 for(i=0;i<7000;i++){
 System.out.println("info[i]");
 }
// f.close();
 keyList.close();
 

 
}} catch (Exception e) { 
}
 
    
    
    
    
}
}

解决方案 »

  1.   

    首先没有看到你把文件内容读取放到info数组中 其次 for(i=0;i<7000;i++){
    System.out.println("info[i]"); --> 这个就是完全打印这个字符串啊, ->System.out.println(info[i]);才是输出内容
    }
      

  2.   

    你把文件内容读取放到info数组中啊,给给我写个完整的代码么?
      

  3.   

    你误解readLine了,readLine就是读取一行而已。读进来后不要splite了,直接加数组中。应改为
    int pointer = 0;
    while ((s=keyList.readLine())!=null){
    info[pointer] = s;
    pointer++;
    if (pointer>6999) {
    System.out.println("文件超长");
    break;
    }
    }
    if (pointer!=0) 
    for (i = 0; i < pointer; i++)
    System.out.println(info[i]);