Writes tag and data to DataOutputStream . Wites padding if neccesary. @param os @throws IOException
(DataOutputStream os)
| 45 | * @throws IOException |
| 46 | */ |
| 47 | public void writeTo(DataOutputStream os) throws IOException { |
| 48 | |
| 49 | int padding; |
| 50 | if (size <= 4 && size > 0) { |
| 51 | // Use small data element format (Page 1-10 in "MATLAB 7 MAT-File Format", September 2010 revision) |
| 52 | os.writeShort(size); |
| 53 | os.writeShort(type); |
| 54 | padding = getPadding(data.limit(), true); |
| 55 | } else { |
| 56 | os.writeInt(type); |
| 57 | os.writeInt(size); |
| 58 | padding = getPadding(data.limit(), false); |
| 59 | } |
| 60 | |
| 61 | int maxBuffSize = 1024; |
| 62 | int writeBuffSize = data.remaining() < maxBuffSize ? data.remaining() : maxBuffSize; |
| 63 | byte[] tmp = new byte[writeBuffSize]; |
| 64 | while (data.remaining() > 0) { |
| 65 | int length = data.remaining() > tmp.length ? tmp.length : data.remaining(); |
| 66 | data.get(tmp, 0, length); |
| 67 | os.write(tmp, 0, length); |
| 68 | } |
| 69 | |
| 70 | if (padding > 0) { |
| 71 | os.write(new byte[padding]); |
| 72 | } |
| 73 | } |
| 74 | } |
no test coverage detected