How can you make idle processors pick up java work?

Discussion in 'Java' started by qwertmonkey@syberianoutpost.ru, Jul 31, 2012.

  1. Guest

    ~
    > You might have more luck reading the whole file at once

    ~
    Well, this I have tried also, but I am getting java.lang.OutOfMemoryError:
    Java heap space relating to the HeapCharBuffer
    ~
    import java.nio.file.FileSystems;
    import java.nio.file.Path;
    import java.nio.channels.FileChannel;
    import java.nio.MappedByteBuffer;
    import java.nio.CharBuffer;
    import java.nio.charset.Charset;
    import java.nio.charset.CharsetDecoder;
    import java.nio.charset.CodingErrorAction;
    import java.nio.charset.CharacterCodingException;

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.FileInputStream;

    // __
    public class NIO06Test{
    private static final String aNWLn = System.getProperty("line.separator");
    private static final String aOEnc = "UTF-8";
    // __
    public static void main(String[] aArgs){
    if((aArgs != null) && (aArgs.length == 1)){
    // __
    long lTm00 = System.currentTimeMillis();

    Path IFlPth = FileSystems.getDefault().getPath(aArgs[0]);
    File IFl = IFlPth.toFile();
    if(IFl.exists()){
    long lIFlL = IFlPth.toFile().length();
    // __
    Charset InChrSt = Charset.forName(aOEnc);
    CharsetDecoder InDec = InChrSt.newDecoder();
    InDec.onMalformedInput(CodingErrorAction.REPORT);
    InDec.onUnmappableCharacter(CodingErrorAction.REPORT);
    // __
    try{
    // __
    FileInputStream FIS = new FileInputStream(IFl);
    FileChannel IFlChnl = FIS.getChannel();
    int iChnlSz = (int)IFlChnl.size();
    MappedByteBuffer MptBytBfr = IFlChnl.map(FileChannel.MapMode.READ_ONLY,
    0, iChnlSz);
    CharBuffer MptChrBfr = InDec.decode(MptBytBfr);
    // __
    }catch(CharacterCodingException ChrKdX){ ChrKdX.printStackTrace(); }
    catch(FileNotFoundException FNFX){ FNFX.printStackTrace(); }
    catch(IOException IOX){ IOX.printStackTrace(); }
    }
    }
    else{ System.err.println("// __ usage:" + aNWLn + aNWLn + " java
    NIO2_newBufferedReader02Test \"<text file>\"" + aNWLn); }
    }
    }
    ~
    $ javac -encoding utf8 NIO06Test.java
    $ date; java -Xms256m -Xmx1024m -Xincgc -Dfile.encoding=utf8 NIO06Test
    /media/sdb1/tmp/eng_news_2006_10M-sentences.txt; date;
    Tue Jul 31 08:26:49 UTC 2012
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:57)
    at java.nio.CharBuffer.allocate(CharBuffer.java:331)
    at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:777)
    at NIO06Test.main(NIO06Test.java:105)
    Tue Jul 31 08:26:49 UTC 2012
    ~
    lbrtchx
    , Jul 31, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    3
    Views:
    209
    Roedy Green
    Jul 31, 2012
  2. Replies:
    3
    Views:
    208
    John B. Matthews
    Jul 31, 2012
  3. Replies:
    2
    Views:
    214
    Joshua Cranmer
    Jul 31, 2012
  4. Replies:
    0
    Views:
    112
  5. lbrtchx
    Replies:
    3
    Views:
    162
    Roedy Green
    Jul 31, 2012
Loading...

Share This Page