List of usage examples for org.apache.commons.vfs2 RandomAccessContent seek
void seek(long pos) throws IOException;
From source file:org.freedesktop.mime.MagicEntry.java
public boolean match(FileObject file) throws IOException { RandomAccessContent s = file.getContent().getRandomAccessContent(RandomAccessMode.READ); try {//from w w w. j a va 2s. co m for (Pattern p : this) { byte[] val = p.getValue(); byte[] mask = p.getMask(); // Read in portion of file ByteBuffer buf = ByteBuffer.allocate(p.getRangeLength() + val.length); s.seek(p.getOffset()); byte[] bufArr = buf.array(); s.readFully(bufArr); int valIdx = 0; for (int i = 0; i < bufArr.length; i++) { if ((bufArr[i] & mask[valIdx]) == (val[valIdx] & mask[valIdx])) { valIdx++; if (valIdx == val.length) { return true; } } else { valIdx = 0; } } } } finally { s.close(); } return false; }
From source file:pl.otros.logview.api.io.Utils.java
public static void reloadFileObject(LoadingInfo loadingInfo) throws IOException { loadingInfo.getFileObject().refresh(); long lastFileSize = loadingInfo.getLastFileSize(); long currentSize = loadingInfo.getFileObject().getContent().getSize(); if (currentSize > lastFileSize) { IOUtils.closeQuietly(loadingInfo.getObserableInputStreamImpl()); RandomAccessContent randomAccessContent = loadingInfo.getFileObject().getContent() .getRandomAccessContent(RandomAccessMode.READ); randomAccessContent.seek(lastFileSize); loadingInfo.setLastFileSize(currentSize); ObservableInputStreamImpl observableStream = new ObservableInputStreamImpl( randomAccessContent.getInputStream(), lastFileSize); loadingInfo.setObserableInputStreamImpl(observableStream); if (loadingInfo.isGziped()) { loadingInfo.setContentInputStream(new GZIPInputStream(observableStream)); } else {//www.j a v a2 s . c o m loadingInfo.setContentInputStream(observableStream); } } else if (currentSize < lastFileSize) { IOUtils.closeQuietly(loadingInfo.getObserableInputStreamImpl()); InputStream inputStream = loadingInfo.getFileObject().getContent().getInputStream(); ObservableInputStreamImpl observableStream = new ObservableInputStreamImpl(inputStream, 0); loadingInfo.setObserableInputStreamImpl(observableStream); if (loadingInfo.isGziped()) { loadingInfo.setContentInputStream(new GZIPInputStream(observableStream)); } else { loadingInfo.setContentInputStream(observableStream); } loadingInfo.setLastFileSize(loadingInfo.getFileObject().getContent().getSize()); } }
From source file:pl.otros.logview.io.Utils.java
public static void reloadFileObject(LoadingInfo loadingInfo) throws IOException { loadingInfo.getFileObject().refresh(); long lastFileSize = loadingInfo.getLastFileSize(); long currentSize = loadingInfo.getFileObject().getContent().getSize(); if (currentSize > lastFileSize) { IOUtils.closeQuietly(loadingInfo.getObserableInputStreamImpl()); RandomAccessContent randomAccessContent = loadingInfo.getFileObject().getContent() .getRandomAccessContent(RandomAccessMode.READ); randomAccessContent.seek(lastFileSize); loadingInfo.setLastFileSize(currentSize); ObservableInputStreamImpl observableStream = new ObservableInputStreamImpl( randomAccessContent.getInputStream()); loadingInfo.setObserableInputStreamImpl(observableStream); if (loadingInfo.isGziped()) { loadingInfo.setContentInputStream(new GZIPInputStream(observableStream)); } else {/*from w w w. j av a2s . c o m*/ loadingInfo.setContentInputStream(observableStream); } } else if (currentSize < lastFileSize) { IOUtils.closeQuietly(loadingInfo.getObserableInputStreamImpl()); InputStream inputStream = loadingInfo.getFileObject().getContent().getInputStream(); ObservableInputStreamImpl observableStream = new ObservableInputStreamImpl(inputStream); loadingInfo.setObserableInputStreamImpl(observableStream); if (loadingInfo.isGziped()) { loadingInfo.setContentInputStream(new GZIPInputStream(observableStream)); } else { loadingInfo.setContentInputStream(observableStream); } loadingInfo.setLastFileSize(loadingInfo.getFileObject().getContent().getSize()); } }