Package cx.ath.matthew.io

# Class InOutCopier

java.lang.Object
java.lang.Thread
cx.ath.matthew.io.InOutCopier

All Implemented Interfaces:
  `Runnable`

public class InOutCopier extends Thread
Copies from an input stream to an output stream using a Thread. example:

     InputStream a = getInputStream();
     OutputStream b = getOutputStream();
     InOutCopier copier = new InOutCopier(a, b);
     copier.start();
     <do stuff that writes to the inputstream>

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Thread

`Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler`

## Field Summary

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

## Constructor Summary

Constructors
Constructor
Description
`InOutCopier(InputStream is, OutputStream os)`
Create a copier from an inputstream to an outputstream

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Force close the stream without waiting for EOF on the source
`void`
`flush()`
Flush the outputstream
`void`
`run()`
Copies from the inputstream to the outputstream until EOF on the inputstream or explicitly closed
`void`
`start()`
Start the thread and wait to make sure its really started

### Methods inherited from class java.lang.Thread

`activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, startVirtualThread, stop, suspend, threadId, toString, yield`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### InOutCopier

public InOutCopier(InputStream is, OutputStream os) throws IOException
Create a copier from an inputstream to an outputstream

Parameters:
  `is` - The stream to copy from
  `os` - the stream to copy to
Throws:
  `IOException`

## Method Details

### close

public void close()
Force close the stream without waiting for EOF on the source

### flush

public void flush() throws IOException
Flush the outputstream

Throws:
  `IOException`

### start

public void start()
Start the thread and wait to make sure its really started

Overrides:
  `start` in class `Thread`

### run

public void run()
Copies from the inputstream to the outputstream until EOF on the inputstream or explicitly closed

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`
See Also:
  - `close()`