先向test.txt中写了一个float类型的变量和一个double类型的变量
DataOutputStream dos = new DataOutputStream(new FileOutputStream("e:\\test.txt"));
dos.writeFloat(3.14F);
dos.writeDouble(3.1415926);
dos.close();
然后用输入流去读取
DataInputStream dis = new DataInputStream(new FileInputStream("e:\\test.txt"));
float f = dis.readFloat();
double d = dis.readDouble();
dis.close();
System.out.println(f);
System.out.println(d);
运行结果是
1.4757395E20
-32.570000082271015
为什么和我保存的数值不一样???
------解决思路----------------------
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import junit.framework.TestCase;
public class Test38 extends TestCase {
public void test1() {
try {
DataOutputStream dos = new DataOutputStream(new FileOutputStream(
"e:\\test.txt"));
dos.writeByte(97);
dos.writeInt(192);
dos.writeFloat(3.14F);
dos.writeDouble(3.1415926);
dos.writeBoolean(1+2==3);
dos.writeChar('A');
dos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void test2() {
try {
DataInputStream dis = new DataInputStream(new FileInputStream(
"e:\\test.txt"));
byte b = dis.readByte();
int i = dis.readInt();
float f = dis.readFloat();
double d = dis.readDouble();
boolean bo = dis.readBoolean();
char c = dis.readChar();
dis.close();
System.out.println(b);
System.out.println(i);
System.out.println(f);
System.out.println(d);
System.out.println(bo);
System.out.println(c);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果也完全正常啊。
97
192
3.14
3.1415926
true
A