------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
DataInputStream是数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。 DataInputStream 对于多线程访问不一定是安全的。 线程安全是可选的,它由此类方法的使用者负责。
DataOutputStream是OutputStream的子类,此类的定义如下:
public class DataOutputStream extends FilterOutputStream implements DataOutput
此类继承自FilterOutputStream类(FilterOutputStream是OutputStream的子类),同时实现了DataOutput接口,在DataOutput接口定义了一系列的写入各种数据的方法。
U提示:DataOutput接口的作用。
DataOutput是数据的输出接口,其中定义了各种数据的输出操作方法,例如,在DataOutputStream类中的各种writeXxx()方法就是此接口定义的,但是在数据输出时一般都会直接使用DataOutputStream,只有在对象序列化时才有可能直接操作到此接口,这一点将在讲解Externalizable接口时为读者介绍。
DataOutputStream类的常用方法如表12-16所示。
表12-16 DataOutputStream类的常用方法
序号 | 方 法 | 类型 | 描 述 |
1 | public DataOutputStream (OutputStream out) | 构造 | 实例化对象 |
2 | public final void write Int(int v) throws | 普通 | 将一个int值以4-byte 值形式写入基础输出流中 |
3 | public final void write Double(double v) | 普通 | 写入一个double类型, 该值以8-byte值形式 写入基础输出流中 |
4 | public final void writeChars (String s) throws | 普通 | 将一个字符串写入到输出流中 |
5 | public final void write Char(int v) throws | 普通 | 将一个字符写入到输出流 |
例子:
package twenty_one;
import java.io.*;
public class four {
public static void main(String[] args)throws IOException {
// wr();
rd();
//wu();
/* OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("utf-8.txt"),"utf-8");
osw.write("你好");
osw.close();
*/
// ru();
}
public static void ru()throws IOException
{
DataInputStream dos=new DataInputStream(new FileInputStream("uda.txt"));
String s=dos.readUTF();
System.out.println(s);
dos.close();
}
public static void wu()throws IOException
{
DataOutputStream dos=new DataOutputStream(new FileOutputStream("uda.txt"));
dos.writeUTF("你好");
dos.close();
}
public static void wr()throws IOException
{
DataOutputStream dos=new DataOutputStream(new FileOutputStream("data.txt"));
dos.writeInt(233);
dos.writeDouble(435.978);
dos.writeBoolean(true);
dos.close();
}
public static void rd()throws IOException
{
DataInputStream dis=new DataInputStream(new FileInputStream("data.txt"));
int num=dis.readInt();
double d=dis.readDouble();
boolean b=dis.readBoolean();
System.out.println("num="+num+" "+"double="+d+" "+"boolean="+b);
dis.close();
}
}