Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #28437

Re: byte stream vs char stream buffer

From markspace <markspace@nospam.nospam>
Newsgroups comp.lang.java.programmer
Subject Re: byte stream vs char stream buffer
Date 2014-05-11 12:10 -0700
Organization A noiseless patient Spider
Message-ID <lkoi04$erc$1@dont-email.me> (permalink)
References (3 earlier) <en0tm9pu331ts50galimgbk8bkseu83mtk@4ax.com> <bt7jpaFa8d5U1@mid.individual.net> <pqbtm9h82nb1q0qbdf87bae2h1jeot5uno@4ax.com> <bt9e82Fll8eU1@mid.individual.net> <lkogpm$5f4$1@dont-email.me>

Show all headers | View raw


I think this might be the original code that I used to speed up my 
project.  It's been a while so I don't know exactly how well this is 
working right now.

You can wrap this in whatever you'd like -- BufferedRead for example -- 
since I just make a plain InputStream here.  I also notice that there's 
not even a close method on this class, so obviously I didn't complete it.

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;

/**
  * Copyright 2013 Brenden Towey DONATED TO THE PUBLIC DOMAIN.
  *
  * PROVIDED AS-IS WITH NO WARRANTY.  FURTHER TESTING IS
  * REQUIRED TO COMPLETE THIS CODE.  CAVEAT EMPTOR.
  *
  * @author Brenden Towey
  */
public class FileByteBufferInputStream extends InputStream {

    private ByteBuffer buffer = ByteBuffer.allocateDirect( 64 * 1024 );
    private FileInputStream file;
    int read;
    boolean eof = false;

    public FileByteBufferInputStream( FileInputStream file ) throws 
IOException
    {
       this.file = file;
       read = file.getChannel().read( buffer );
       if( read == -1 ) eof = true;
       buffer.rewind();
    }

    @Override
    public int read()
            throws IOException
    {
       if( eof ) return -1;
       if( read-- == 0 )
       {
          buffer.clear();
          read = file.getChannel().read( buffer );
          if( read == -1 ) eof = true;
          buffer.rewind();
          if( eof ) {
             return -1;
          } else {
             int retval = buffer.get();
             assert( read > 0 );
             read--;
             return retval;
          }
       } else{
          int retval = buffer.get();
          return retval;
       }
    }
}

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-06 23:48 -0700
  Re: byte stream vs char stream buffer Andreas Leitgeb <avl@auth.logic.tuwien.ac.at> - 2014-05-08 13:30 +0000
    Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-09 09:34 -0700
      Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-10 13:18 -0700
        Re: byte stream vs char stream buffer Robert Klemme <shortcutter@googlemail.com> - 2014-05-10 23:24 +0200
          Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-10 16:08 -0700
            Re: byte stream vs char stream buffer Robert Klemme <shortcutter@googlemail.com> - 2014-05-11 16:02 +0200
              Re: byte stream vs char stream buffer markspace <markspace@nospam.nospam> - 2014-05-11 11:50 -0700
                Re: byte stream vs char stream buffer markspace <markspace@nospam.nospam> - 2014-05-11 12:10 -0700
                Re: byte stream vs char stream buffer Robert Klemme <shortcutter@googlemail.com> - 2014-05-11 21:34 +0200
                Re: byte stream vs char stream buffer markspace <markspace@nospam.nospam> - 2014-05-11 12:55 -0700
                Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-16 16:55 -0700
                Re: byte stream vs char stream buffer markspace <markspace@nospam.nospam> - 2014-05-16 17:36 -0700
                Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-16 19:52 -0700
              Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-16 16:37 -0700
          Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-10 17:21 -0700
            Re: byte stream vs char stream buffer Martin Gregorie <martin@address-in-sig.invalid> - 2014-05-11 09:05 +0000
              Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-12 02:07 -0700
                Re: byte stream vs char stream buffer Silvio <silvio@internet.com> - 2014-05-12 12:20 +0200
                Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-16 20:19 -0700
                Re: byte stream vs char stream buffer Roedy Green <see_website@mindprod.com.invalid> - 2014-05-18 05:28 -0700
                Re: byte stream vs char stream buffer Silvio <silvio@internet.com> - 2014-05-18 23:54 +0200

csiph-web