我有个文件转为 stream流, 我想截取其中这个stream的一段。
利用offset length之类的参数,
我看了下 方法只有read(byte[],int,int)之类的方法
不能直接返回 stream 而是个字节数组
我应该怎么实现我的要功能

解决方案 »

  1.   

    java.nio.channels.FileChannal fc=myFileStream.getChannal();myFileStream可以是FileInputStream,FileOutputStream和RandomAccessFile三者之一.
    其中,RandomAccessFile本身就可以随机定位和读写.有关FileCannal请楼主自己查API.我没有用过.挺烦的.
      

  2.   

    如果楼主要截取的那段数据,是固定大小的话,我到还有个办法。int size = 5120;//这个就是那段数据的固定大小。
    InputStream in = .....
    byte [] buff = new byte[size];
    int count = in.read(buff,offset,len);
    InputStream neededIn = ByteArrayInputStream(buff);
    //这个neededIn就是楼主要的InputStream其实就是创建一个缓冲区,然后把它封装成InputStream,如果数据太大,就要另想办法。
    我的意见,楼主不如直接调用in.skip(offset)方法,直接跳到你要读取的那段数据区域,
    然后根据实际情况直接使用就行了。
      

  3.   

    RandomAccessFile等下去看下api,试下看