0
我有這個代碼來壓縮浮點值,但輸出的大小比原來的大。如何使用java.util.zip壓縮字節數組?
Mi的目標是將壓縮數據(字節數組)保存在一個文件中,然後使數據膨脹以獲得原始浮點值。
我在做什麼錯?
public void floatToArrayByte() throws IOException {
float f = 3574.34568f;
byte arayByte[] = ByteBuffer.allocate(4).putFloat(f).array();
System.out.println("Original values");
for (int i = 0; i < arayByte.length; i++) {
System.out.print(arayByte[i]);
System.out.print(" ");
}
System.out.println("");
arayByte = this.compress(arayByte);
System.out.println("Compress values");
for (int i = 0; i < arayByte.length; i++) {
System.out.print(arayByte[i]);
System.out.print(" ");
}
System.out.println("");
}
public byte[] compress(byte[] data) throws IOException {
Deflater deflater = new Deflater();
deflater.setInput(data);
deflater.setLevel(Deflater.DEFLATED);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
deflater.finish();
byte[] buffer = new byte[1024];
while (!deflater.finished()) {
int count = deflater.deflate(buffer);
outputStream.write(buffer, 0, count);
}
outputStream.close();
byte[] output = outputStream.toByteArray();
System.out.println("Original size: " + data.length + " Bytes");
System.out.println("Compressed size: " + output.length + " Bytes");
return output;
}
這是我得到
原始值
69 95 101 -120
原稿尺寸:4個字節
壓縮後的大小:12個字節
壓縮值
120 -38 115 -115 79 -19 0 0 3 -121 1 -110
這是你打算壓縮四個項目?很有可能你不會節省太多空間。即使有400個浮標,結果也可能是洗滌,特別是如果浮標是隨機的。 – dasblinkenlight
我要壓縮一個包含數千條記錄的氣候數據集,並且所有的值都是浮點值。 –
你能幫我嗎? –