@Override public void writeTo(OutputStream outstream) throws IOException { if (outstream == null) { throw new IllegalArgumentException("Output stream may not be null"); } InputStream instream = new FileInputStream(this.file); try { byte[] tmp = new byte[4096]; int l; while ((l = instream.read(tmp)) != -1) { outstream.write(tmp, 0, l); fireOnWrite(l); if (_listener != null && !_listener.isRunning()) { break; } } outstream.flush(); } finally { instream.close(); } }
protected void fireOnWrite(int written) { if (_listener != null) { _listener.onWrite(this, written); } }