DataInputStream和DataOutputStream是對(duì)InputStream和OutputStream字節(jié)流的格式化包裝流,字節(jié)流讀寫是以字節(jié)為單位浑玛,對(duì)于象Java的數(shù)據(jù)類型比如int型就需要讀寫4次,double類型需要讀寫8個(gè)次拒名,這樣使用起就來非常不方便吩愧,同時(shí)也會(huì)影響性能。格式化包裝流主要對(duì)Java的格式化類型進(jìn)行讀寫操作增显,提供各種方便讀寫數(shù)據(jù)類型的方法雁佳。
DataInputStream:
String readUTF()讀取字符串
int readInt()讀取int型
double readDouble()讀取double型
boolean readBoolean()讀取boolean型
等等。
writeUTF(String)寫字符串
writeInt(int)寫int型
writeDouble(double)寫double型
writeBoolean(boolean)寫boolean型
等等同云。
示例1代碼:
public class TestDataOutputStream {
public static void main(String[] args) {
DataOutputStream dos=null;
FileOutputStream fos=null;
DataInputStream dis=null;
FileInputStream fis=null;
String str="Hello";
int a=123;
double d=12.3;
boolean bl=true;
try {
fos=new FileOutputStream("stream.dat");
dos=new DataOutputStream(fos);
dos.writeUTF(str);
dos.writeInt(a);
dos.writeDouble(d);
dos.writeBoolean(bl);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(dos!=null){
try {
dos.flush();
dos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fos!=null)
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
示例2代碼:
public class TestDataInputStream{
public static void main(String[] args) {
DataInputStream dis=null;
FileInputStream fis=null;
try {
fis=new FileInputStream("stream.dat");
dis=new DataInputStream(fis);
String str=dis.readUTF();
int a=dis.readInt();
double d=dis.readDouble();
boolean bl=dis.readBoolean();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
if(dis!=null){
try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fis!=null)
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}