大家好,请问大家一个问题,怎么从外部txt文件中分段读取数据啊?
我的源代码是这样的,但是不知道怎么从外部txt文件中分段读取数据,我想分页显示txt文件中的信息,分段读取可能更有效率!大家帮帮忙啊! 
 protected   String   loadText(String   url)   //读取a.txt文件获得记事本信息 
 	{ 
 		String   returnString   =   null;  		 
 		InputStream   is   =   this.getClass().getResourceAsStream(url); 
 		if   (is   !=   null) 
 		{ 
 			ByteArrayOutputStream   baos   =   new   ByteArrayOutputStream(); 
 			int   ch   =   0; 
 			try    
 			{ 
 				while   ((ch   =   is.read())   !=   -1) 
 				{ 
 					baos.write(ch); 
 				} 
 				byte[]   data   =   baos.toByteArray(); 
 				returnString   =   new   String(data, "UTF-8 "); 
 				is.close(); 
 				baos.close(); 
 			} 
 			catch   (
IOException   e)    
 			{			 
 				e.printStackTrace(); 
 				return    " "; 
 			} 
 		}  		 
 		if(returnString   !=   null) 
 		{			 
 			return   returnString; 
 		} 
 		else 
 		{ 
 			return    " "; 
 		} 
 	} 
------解决方案--------------------没有必要去while循环读取数据.如果要分段读取,直接skip就可以了. 
 不过你的文件最好是二进制文件,而不是一个单纯的文本文件. 
 你可以用程序生成这个二进制文件,简单举例来说,就是象一个文件里writeUTF很多个字串. 
 最好也在文件里存下每个字串的偏移量. 
 我用的方法如下: 
 //strfile 要读取的文件名字,offid是字串存储信息在文件中的顺序编号. 
  public static String getString(String strfile,int offid) 
     { 
         try 
         { 
             InputStream inputstream =  " ".getClass().getResourceAsStream(strfile);             
 DataInputStream dis = new DataInputStream(inputstream); 
             dis.skipBytes(offid * 2);//偏移一定长度,读取文字存储位置的相关信息. 
             short strlen = dis.readShort();//读取文字在文件中的具体偏移量 
             dis.skipBytes(strlen - offid * 2 - 2);//跳过偏移量和位置信息的长度,直接读取字串 
             String s = dis.readUTF(); 
             dis.close(); 
             dis = null;   
             return s; 
         } 
         catch (IOException ioexception) 
         { 
             return null; 
         } 
      }   
 看了这个方法,就应该知道如何生成这个二进制文件了吧,呵呵. 
 这样的话,就不需要每次将文件全部导入heap,只需要按段读取文字就可以了.     
 saltedfish