List of usage examples for java.nio ByteBuffer clear
public final Buffer clear()
From source file:com.alibaba.otter.shared.common.utils.NioUtilsPerformance.java
public static void channelTest(File source, File target) throws Exception { FileInputStream fis = null;/*w ww.j a va2 s . com*/ FileOutputStream fos = null; try { fis = new FileInputStream(source); fos = new FileOutputStream(target); FileChannel sChannel = fis.getChannel(); FileChannel tChannel = fos.getChannel(); target.createNewFile(); ByteBuffer buffer = ByteBuffer.allocate(16 * 1024); while (sChannel.read(buffer) > 0) { buffer.flip(); tChannel.write(buffer); buffer.clear(); } tChannel.close(); sChannel.close(); } finally { IOUtils.closeQuietly(fis); IOUtils.closeQuietly(fos); } }
From source file:gridool.communication.transport.nio.GridNioServer.java
private static void handleRead(final SocketChannel channel, final SelectionKey key, final ByteBuffer sharedReadBuf, final GridTransportListener notifier, final ExecutorService exec) { sharedReadBuf.clear(); final SocketAddress remoteAddr = channel.socket().getRemoteSocketAddress(); final int bytesRead; try {/*from w ww .ja v a 2 s.c om*/ bytesRead = channel.read(sharedReadBuf); } catch (IOException e) { LOG.warn("Failed to read data from client: " + remoteAddr, e); NIOUtils.close(key); return; } if (LOG.isDebugEnabled()) { LOG.debug("Read " + bytesRead + " bytes from a client socket: " + remoteAddr); } if (bytesRead == -1) { if (LOG.isTraceEnabled()) { LOG.trace("Remote client closed connection: " + remoteAddr); } NIOUtils.close(key); return; } else if (bytesRead == 0) { return; } final GridMessageBuffer msgBuf = (GridMessageBuffer) key.attachment(); sharedReadBuf.flip(); while (sharedReadBuf.remaining() > 0) { msgBuf.read(sharedReadBuf); if (msgBuf.isFilled()) { exec.execute(new Runnable() { public void run() { final GridCommunicationMessage msg = msgBuf.toMessage(); msgBuf.reset(); if (LOG.isInfoEnabled()) { LOG.info("Recieved a GridCommunicationMessage [" + msg.getMessageId() + "]"); } notifier.notifyListener(msg); } }); break; } } }
From source file:io.uploader.drive.util.FileUtils.java
public static String readAllAndgetMD5(InputStream in) throws IOException { com.google.common.hash.HashingInputStream his = null; try {/*from w ww . j ava2 s . co m*/ his = new com.google.common.hash.HashingInputStream(Hashing.md5(), in); final int bufferSize = 2097152; final ReadableByteChannel inputChannel = Channels.newChannel(his); final ByteBuffer buffer = ByteBuffer.allocateDirect(bufferSize); while (inputChannel.read(buffer) != -1) { buffer.clear(); } /* byte[] bytesBuffer = new byte[bufferSize] ; int r = his.read(bytesBuffer, 0, bufferSize) ; while (r != -1) r = his.read(bytesBuffer) ; */ HashCode hc = his.hash(); return (hc != null) ? (hc.toString()) : (null); } finally { if (his != null) his.close(); } }
From source file:ja.centre.util.io.Files.java
public static void copy(String source, String destination) throws IOException { FileInputStream fis = null;/*from ww w .j a v a 2 s .co m*/ FileOutputStream fos = null; try { fis = new FileInputStream(source); fos = new FileOutputStream(destination); FileChannel fic = null; FileChannel foc = null; try { fic = fis.getChannel(); foc = fos.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(COPY_BUFFER_SIZE); do { buffer.flip(); foc.write(buffer); buffer.clear(); } while (fic.read(buffer) != -1); } finally { closeQuietly(fic); closeQuietly(foc); } } finally { closeQuietly(fis); closeQuietly(fos); } }
From source file:ja.lingo.engine.util.EngineFiles.java
private static void appendFile(String fileName, FileOutputStream fos, boolean prependWithLength) throws IOException { FileInputStream fis = new FileInputStream(fileName); FileChannel fic = fis.getChannel(); FileChannel foc = fos.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(COPY_BUFFER_SIZE); // put header: length (1 int = 4 bytes) if (prependWithLength) { buffer.putInt((int) new File(fileName).length()); }/*from w ww .j ava 2 s . c om*/ // put body do { buffer.flip(); foc.write(buffer); buffer.clear(); } while (fic.read(buffer) != -1); fic.close(); // NOTE: do not close 'foc' Files.delete(fileName); }
From source file:org.cytobank.io.LargeFile.java
protected static ByteBuffer getBufferFromPool() throws IOException { try {/*w w w .j av a 2 s . c om*/ ByteBuffer byteBuffer = (ByteBuffer) objectPool.borrowObject(); byteBuffer.clear(); return byteBuffer; } catch (Exception e) { throw new IOException("Could not get buffer from buffer pool."); } }
From source file:MainClass.java
private static void createFile() throws Exception { long[] primes = new long[] { 1, 2, 3, 5, 7 }; File aFile = new File("C:/primes.bin"); FileOutputStream outputFile = new FileOutputStream(aFile); FileChannel file = outputFile.getChannel(); final int BUFFERSIZE = 100; ByteBuffer buf = ByteBuffer.allocate(BUFFERSIZE); LongBuffer longBuf = buf.asLongBuffer(); int primesWritten = 0; while (primesWritten < primes.length) { longBuf.put(primes, primesWritten, min(longBuf.capacity(), primes.length - primesWritten)); buf.limit(8 * longBuf.position()); file.write(buf);//from www .j av a 2s . c om primesWritten += longBuf.position(); longBuf.clear(); buf.clear(); } System.out.println("File written is " + file.size() + "bytes."); outputFile.close(); }
From source file:gridool.communication.transport.tcp.GridNioServer.java
private static void handleRead(final SocketChannel channel, final SelectionKey key, final ByteBuffer sharedReadBuf, final GridTransportListener notifier, final ExecutorService exec) { sharedReadBuf.clear(); final SocketAddress remoteAddr = channel.socket().getRemoteSocketAddress(); final int bytesRead; try {//from www .j a v a 2 s . c om bytesRead = channel.read(sharedReadBuf); } catch (IOException e) { LOG.warn("Failed to read data from client: " + remoteAddr, e); NIOUtils.close(key); return; } if (LOG.isDebugEnabled()) { LOG.debug("Read " + bytesRead + " bytes from a client socket: " + remoteAddr); } if (bytesRead == -1) { if (LOG.isTraceEnabled()) { LOG.trace("Remote client closed connection: " + remoteAddr); } NIOUtils.close(key); return; } else if (bytesRead == 0) { return; } final GridMessageBuffer msgBuf = (GridMessageBuffer) key.attachment(); sharedReadBuf.flip(); while (sharedReadBuf.remaining() > 0) { msgBuf.read(sharedReadBuf); if (msgBuf.isFilled()) { exec.execute(new Runnable() { public void run() { final GridCommunicationMessage msg = msgBuf.toMessage(); msgBuf.reset(); if (LOG.isDebugEnabled()) { LOG.debug("Recieved a GridCommunicationMessage [" + msg.getMessageId() + "]"); } notifier.notifyListener(msg); } }); break; } } }
From source file:de.bluepair.sci.client.SHAUtils.java
public static <T> Map<String, String> sha512(Path path, Predicate<T> gard, T testValue, long blockSizePref, boolean forceBlockSize) { if (Files.notExists(path)) { return null; }//from ww w.j a v a 2 s .c o m MessageDigest md = getDigest(); MessageDigest md1 = getDigest(); if (!gard.test(testValue)) { return null; } long blockSize = blockSizePref; long size = -1; try { size = Files.size(path); if (!forceBlockSize) {// maximal 10 hashsummen // sonst hab ich zu viele in der datei // stehen! while (size / blockSize > 10) { blockSize += blockSizePref; } } } catch (IOException e) { blockSize = blockSizePref; return null; } Map<String, String> map = new HashMap<>(); long lastStart = 0; long stepDown = blockSize; try (final SeekableByteChannel fileChannel = Files.newByteChannel(path, StandardOpenOption.READ);) { final ByteBuffer buffer = ByteBuffer.allocateDirect(8192); int last; do { if (!gard.test(testValue) || Files.notExists(path)) { return null; } buffer.clear(); last = fileChannel.read(buffer); buffer.flip(); md.update(buffer); // calc 2checksups buffer.flip(); md1.update(buffer); if (last > 0) { stepDown -= last; } // wenn ich ein 100mb netzwerk habe // ~ca. 5MB bertragung // also bei abbruch kann wiederaufgesetzt werden wenn die summen // bekannt sind. // ~hnlich Blcke berechen also // 0-5 c1 // 0-10 c2 // 5-10 c3 ... if (stepDown <= 0 || (last <= 0)) { long len = (blockSize + Math.abs(stepDown)); if (stepDown > 0) { // kottektur wenn last <0 len = blockSize - stepDown; } stepDown = blockSize; map.put("sha512_" + lastStart + "_" + len, Hex.encodeHexString(md1.digest())); lastStart += len; md1.reset(); } } while (last > 0); } catch (IOException ex) { Logger.getLogger(FileAnalysis.class.getName()).log(Level.SEVERE, null, ex); return null; } final byte[] sha1hash = md.digest(); map.put("sha512", Hex.encodeHexString(sha1hash)); return map; }
From source file:StreamUtil.java
/** * Copies the content read from InputStream to OutputStream. Uses the NIO Channels to copy. * @param is The InputStream that is read. * @param os The OutputStream where the data is written. * @throws IOException/*from w w w. j ava2 s .c om*/ */ public static void copy(final InputStream is, final OutputStream os) throws IOException { final ReadableByteChannel inChannel = Channels.newChannel(is); final WritableByteChannel outChannel = Channels.newChannel(os); try { final ByteBuffer buffer = ByteBuffer.allocate(65536); while (true) { int bytesRead = inChannel.read(buffer); if (bytesRead == -1) break; buffer.flip(); while (buffer.hasRemaining()) outChannel.write(buffer); buffer.clear(); } } finally { try { inChannel.close(); } catch (IOException ex) { LOG.log(Level.SEVERE, null, ex); } try { outChannel.close(); } catch (IOException ex) { LOG.log(Level.SEVERE, null, ex); } } }