ByteArrayReaderWriter.java 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package de.tudarmstadt.informatik.hostage.io;
  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.util.List;
  9. import de.tudarmstadt.informatik.hostage.wrapper.ByteArray;
  10. public class ByteArrayReaderWriter implements ReaderWriter<ByteArray> {
  11. private BufferedInputStream in;
  12. private BufferedOutputStream out;
  13. public ByteArrayReaderWriter(InputStream in, OutputStream out) {
  14. this.in = new BufferedInputStream(in);
  15. this.out = new BufferedOutputStream(out);
  16. }
  17. @Override
  18. public ByteArray read() throws IOException {
  19. while (in.available() == 0) {
  20. Thread.yield();
  21. }
  22. ByteArrayOutputStream os = new ByteArrayOutputStream();
  23. int oneByte;
  24. while ((oneByte = in.read()) != -1) {
  25. os.write(oneByte);
  26. }
  27. return new ByteArray(os.toByteArray());
  28. }
  29. @Override
  30. public void write(List<ByteArray> message) throws IOException {
  31. for (ByteArray m : message) {
  32. out.write(m.get());
  33. out.flush();
  34. }
  35. }
  36. }