一个文本文件,里面为英文文章。 
如 It is a nice day.    But I don't like it. 
如果要指定提取该文本中指定位置的内容,怎么处理? 
比如 a nice day对应的字符位置是6到15,反过来怎么根据6,15这个指定范围提取出来a nice day? 
感觉如果熟悉数据流操作应该很简单,但是我对这个不熟,先谢谢大家的帮助。 
 

解决方案 »

  1.   

    你确认位置是固定的吗?如果是
    1 java里面的 
    String str = ".......";
    String ss = str.substring(6,15);2 SQL 里面一边叫 substr
    select substr(Text_Field,6,15) from myTable 。
      

  2.   


    /**
     *楼主所要实现的功能可以通过RandomAccessFile来实现
     *即可以通过RandomAccessFile对象跳过FROM个字节,直接
     *从FROM+1处的字节出开始读取所需的TO个字节
     *下面假设楼主的TXT文件名为characters.txt,文件放置在
     *D盘目录下
    */import java.io.*;public class RandomReadFile{
    private static RandomAccessFile raf = null;
    private static StringBuffer sb = null;
    public static String getRandomBytes(int from,int to){
    try{
    raf = new RandomAccessFile("D:\\characters.txt","r");
      raf.skipBytes( from );
      sb = new StringBuffer();
      String randomString = "";
      for ( int i = 0; i < to; i++ ) {
    sb = sb.append((char)raf.readByte());
      }
      raf.close();
    }catch(FileNotFoundException fnfe){
    fnfe.printStackTrace();
    }catch(Exception e){
    e.printStackTrace();
    }

    return sb.toString();
    }

    public static void main(String[] args){
    System.out.println(""+RandomReadFile.getRandomBytes(6,15));
    }
    }
      

  3.   

    直接上regex啊。提取文本内容,然后正则匹配提取。
      

  4.   

    不好意思,以上代码段求出的是15个字节的内容
    循环内的语句应该为:
    for ( int i = 0; i < to-from+1; i++ ) {
      sb = sb.append((char)raf.readByte());
    }
      

  5.   

    这样求出来的结果才是 from至to 个字节的结果:)