DataInputStream和DataOututStream
为什么要使用数据流?
问题:怎样将一个long类型的随机数(比如有100个数字)放到文件中?
解决方案:可以将它转化成为字符串,然后将该字符串转化成为字节数组,然后就可以将这个字节数组写进去了。这确实可以。可是很费力气,因为你要把这个long类型的数(例如:12345678963214)进行转换成为String,然后转成字节数组,这样的话,内存里面的空间就占据了很多。而实际上一个long类型的字节占8个字节。最简单的方法就是将这个数直接写到文件当中。因此数据流就闪亮登场了。
public class DataOutputStream extends FilterOutputStream implements DataOutput
DataOutputStream的使用方法
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.io.*;
public class StreamTest {
public static void main(String[] args) throws IOException {
String path = System.getProperty("user.dir") + File.separator + "temp.txt";
File file = new File(path);
OutputStream os = new FileOutputStream(file);
OutputStream bufferedOutputStream = new BufferedOutputStream(os);
DataOutputStream dos = new DataOutputStream(bufferedOutputStream);
byte b = 1;
int i = 2;
char c = 'c';
float f = 2.2f;
boolean bool = true;
String s = "Hello World!!!";
dos.writeByte(b);
dos.writeInt(i);
dos.writeChar(c);
dos.writeFloat(f);
dos.writeBoolean(bool);
dos.writeUTF(s);
dos.close();
InputStream is = new FileInputStream(file);
InputStream bufferedInputStream = new BufferedInputStream(is);
DataInputStream dis = new DataInputStream(bufferedInputStream);
System.out.println(dis.readByte());// 注意读入数据的顺序要和写入数据的顺序相同
System.out.println(dis.readInt());
System.out.println(dis.readChar());
System.out.println(dis.readFloat());
System.out.println(dis.readBoolean());
System.out.println(dis.readUTF());
dis.close();
}
}
1
2
c
2.2
true
Hello World!!!
注意:读的顺序要和写的顺序一样。