这是输出部分,我将一个的数组的大小以压缩形式输出到一个文件里。
[code="java"]
import java.io.DataOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterOutputStream;
public class 压缩的文件IO输出 {
public static void main(String[] args) {
DataOutputStream fout = null;
double data[] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 };
try {
fout = new DataOutputStream(new DeflaterOutputStream(
new FileOutputStream("data.cmprs")));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
fout.writeInt(data.length);
} catch (IOException e) {
e.printStackTrace();
}
}
}
[/code]
应该输出的大小是6才对。文件也正常输出了。
这时我写一个程序去读压缩文件中的这个int值
代码如下:
[code="java"]
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.zip.DeflaterInputStream;
public class 压缩的文件IO输入 {
public static void main(String[] args) {
DataInputStream fin = null;
try {
fin = new DataInputStream(new DeflaterInputStream(new FileInputStream("data.cmprs")));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
int num = fin.readInt();
System.out.println(num);
} catch (IOException e) {
e.printStackTrace();
}
}
}
[/code]
输出的结果让人不得其解。
2023533464
不知问题出在哪里,请教大家。