/* * Copyright (C) 2011, Google Inc. and others * * This program and the accompanying materials are made available under the * terms of the Eclipse Distribution License v. 1.0 which is available at * https://www.eclipse.org/org/documents/edl-v10.php. * * SPDX-License-Identifier: BSD-3-Clause */ package org.eclipse.jgit.util.io; import java.io.IOException; import java.io.OutputStream; /** * Counts the number of bytes written. */ public class CountingOutputStream extends OutputStream { private final OutputStream out; private long cnt; /** * Initialize a new counting stream. * * @param out * stream to output all writes to. */ public CountingOutputStream(OutputStream out) { this.out = out; } /** * Get current number of bytes written. * * @return current number of bytes written. */ public long getCount() { return cnt; } @Override public void write(int val) throws IOException { out.write(val); cnt++; } @Override public void write(byte[] buf, int off, int len) throws IOException { out.write(buf, off, len); cnt += len; } @Override public void flush() throws IOException { out.flush(); } @Override public void close() throws IOException { out.close(); } }