package FileMpl;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;import java.util.Set;import File.Readfile;public class ReadfileMpl implements Readfile {
/**
 * 读取文件接口的实现类
 * @throws IOException 
 */
public List getList() throws IOException{ /**
 * 创建文件
 */
File f1=new File("F:/项目/f1.txt");//指向该目录的对象
if(!f1.exists()){//如果该文件对象不存在,则执行createNewFile()方法,新创建一个文件
f1.createNewFile();
}
//System.out.println("开始读取文件内容!");
/**
 * 开始读取文件
 * 1,创建输入流
 * 2,用BufferedReader读取文件
 * 3,用while遍历文件
 */
        //创建List集合
List list=new ArrayList();
// 打开读取文件的流
FileReader fr=new FileReader(f1);
BufferedReader br=new BufferedReader(fr); /**
 * while循环读取文件的内容
 * 读取指定字符:int read(byte[]b,intoff,int len)
 * 从输入流中读取最多len长度的字节,保存到字节数组 b中,保存的位置从off开始
 */
String line;//用line存储读取到的内容
int num=1;//用num表示行数
byte[] uses=line.getBytes();//创建一个字节数组,存入uses
while(line=br.read(uses, 0, 8)){

}
/**按行数读取值
while((line=br.readLine())!=null){
//将line的值存储入一个ArrayList 集合
        list.add(line);
        num++;
}*/
//关闭流
fr.close();
br.close();
//返回list的值
return list;

}}

解决方案 »

  1.   

    使用RandomAccessFile的readLine()方法获取每一行的字符串,如果包含,获取起始索引,然后加上RandomAccessFile指针在当前文件中的偏移量,通过getFilePointer()获取
      

  2.   

    没看出你这个程序和你问的问题有什么关系?既然你用readLine()方法,那在得到的字符串中进行查找即可了
      

  3.   

    RandomAccessFile
    這個方法比較好用了可以讀取文件中的每個字符