public static void main(String[] args) throws Exception { File input = new File("/tmp/test.log"); SequentialFileInputStream f = new SequentialFileInputStream(input, false); PrintStream out = new PrintStream(new FileOutputStream(new File( input.getAbsolutePath() + "-complete"))); byte[] buf = new byte[1024]; int read = 0; int written = 0; do { if (f.available() > 0) buf = new byte[Math.min(1024, f.available())]; read = f.read(buf); if (read >= 0) { written += read; out.write(buf, 0, read); out.flush(); } log.debug("{} bytes written", written); } while (read > 0); } }
/** * @see stream.urls.Connection#connect() */ @Override public InputStream connect() throws IOException { boolean removeAfterRead = "true".equalsIgnoreCase(url.getParameters() .get("remove")); String pattern = ".*"; if (url.getParameters().containsKey("pattern")) { pattern = url.getParameters().get("pattern"); } File file = new File(url.getPath()); seqFileStream = new SequentialFileInputStream(file, pattern, removeAfterRead); return seqFileStream; }
/** * @see stream.urls.Connection#connect() */ @Override public InputStream connect() throws IOException { boolean removeAfterRead = "true".equalsIgnoreCase(url.getParameters() .get("remove")) || "true".equalsIgnoreCase(url.getParameters().get( "removeAfterRead")); String pattern = ".*"; if (url.getParameters().containsKey("pattern")) { pattern = url.getParameters().get("pattern"); } File file = new File(url.getPath()); seqFileStream = new SequentialFileInputStream(file, pattern, removeAfterRead); if (url.getParameters().containsKey("maxWaitingTime")) { seqFileStream.setMaxWaitingTime(new Long(url.getParameters().get( "maxWaitingTime"))); } return seqFileStream; }