您的位置:首页 > 编程语言 > Java开发

JAVA IO系列---DataInputStream和DataOutputstream类

2011-04-11 22:55 651 查看
·DataOutputStream类提供了三个写入字符串的方法:

--
writeBytes(String s)


--
writeChars(String s)


--
writeUTF(String str)


·为什么DataInputStream类有一个readUTF方法,而没有“readBytes”和"readChars"方法呢?

A:要在一个连续的字节流中读取字符串,如果没有一个特殊的标记作为字符串的结尾,而且事先也不知道这个字符串的长度,就无法知道该读 取到什么样的位置才是这个字符串的结尾。writeUTF方法在写入字符串时就写好了字符串的长度,而writeBytes和writeChars则没有。

·编程实例:分别使用DataOutputstream类的writeUTF、writeBytes和writeChars方法,比较这几个方法的差异。程序中所使用的流栈如下:



·关闭流栈中的最上层的流对象,将会自动关闭流栈中的所有底层流对象。

import java.io.*;
public class Iotest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
FileOutputStream fos = new FileOutputStream("a.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF("hello io!");
dos.close();

FileInputStream fis = new FileInputStream("a.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
System.out.println(dis.readUTF());

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: