I'm having quite a problem here, and I think it is because I don't understand very much how I should use the API provided by Java.

I need to write an `int` and a `byte[]` into a `byte[]`.

I thought of using a `DataOutputStream` to solve the data writing with `writeInt(int i)` and `write(byte[] b)`, and to be able to put that into a byte array, I should use `ByteArrayOutputStream` method `toByteArray().`

I understand that this classes use the Wrapper pattern, so I had two options:

```
DataOutputStream w = new DataOutputStream(new ByteArrayOutputStream());

```

or

```
ByteArrayOutputStream w = new ByteArrayOutputStream(new DataOutputStream());

```

but in both cases, I "loose" a method. in the first case, I can't access the `toByteArray()` method, and in the second, I can't access the `writeInt()` method.

How should I use this classes together?