java核心技术之IO流(六)DataInputStream和DataOutputStream
最后更新于:2022-04-01 09:58:50
### 说明
DataInputStream和DataOutputStream允许应用程序以与机器无关的方式从底层输入流中读取基本的java数据类型。也就是说,当读取一个数据时,不必关心这个数值是什么字节。
### 关键方法
### DataInputStream
构造方法:
DataInputStream(InputStream in)
读取数据:
readBoolean()
readByte()
readChar()
readInt()
readFloat()
readDouble()
### DataOutputStream
构造方法:
DataOutputStream(OutputStream out)
写入数据的方法:
writeBoolean(boolean v)
writeByte(int v)
writeChar(int v)
writeInt(int v)
writeFloat(float v)
writeDouble(double v)
### 使用Demo
这个Demo是一个使用DataOutputStream向文件中存取数据和使用DataInputStream从文件中读取数据的样例:
~~~
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class DataInputStreamDataOutputStream {
public static void testDataInputStream(){
DataInputStream dis = null;
try {
File fin = new File("DataInputOutputStream.txt");
FileInputStream fis = new FileInputStream(fin);
dis = new DataInputStream(fis);
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());
System.out.println(dis.readFloat());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(dis != null){
try {
dis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//测试DataOutputStream
public static void testDataOutputStream(){
DataOutputStream dos = null;
try {
File fout = new File("DataInputOutputStream.txt");
FileOutputStream fos = new FileOutputStream(fout);
dos = new DataOutputStream(fos);
dos.writeInt(1);
dos.writeBoolean(true);
dos.writeFloat((float) 1.203);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(dos != null){
try {
dos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
~~~
调用方式:
~~~
//测试DataOutputStream
DataInputStreamDataOutputStream.testDataOutputStream();
//测试DataInputStream
DataInputStreamDataOutputStream.testDataInputStream();
~~~