Java中的流操作可以帮助我们更加高效地处理数据。其中,数据流是一种特殊类型的流,可以用于操作原始数据类型值的流(例如 int,double,long 等)。在这里,我将为大家详细介绍“Java流操作之数据流实例代码”的完整攻略。
数据流简介
数据流是 Java 中用于操作原始数据类型的流。数据流实现了 DataInput 和 DataOutput 接口,可以对基本数据类型进行读取和写入。数据流有两种类型:一个是输入数据流 DataInputStream,另一个是输出数据流 DataOutputStream。
数据流的使用方法
要使用数据流,我们首先需要进行实例化:
DataOutputStream out = new DataOutputStream(new FileOutputStream("data.txt"));
DataInputStream in = new DataInputStream(new FileInputStream("data.txt"));
数据流具有写入基本类型数据的能力,使用其 writeXXX() 方法即可。
out.writeByte(1); // 写入 1 个字节
out.writeShort(2); // 写入 2 个字节
out.writeInt(3); // 写入 4 个字节
out.writeLong(4L); // 写入 8 个字节
out.writeFloat(5.0f); // 写入 4 个字节
out.writeDouble(6.0); // 写入 8 个字节
数据流还具有对基本类型数据的读取能力,使用其 readXXX() 方法即可。
byte a = in.readByte(); // 读取 1 个字节
short b = in.readShort(); // 读取 2 个字节
int c = in.readInt(); // 读取 4 个字节
long d = in.readLong(); // 读取 8 个字节
float e = in.readFloat(); // 读取 4 个字节
double f = in.readDouble(); // 读取 8 个字节
数据流示例说明
示例1:单独使用数据流读写数据
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class DataStreamDemo {
public static void main(String[] args) throws Exception {
DataOutputStream ds = new DataOutputStream(new FileOutputStream("test.txt"));
ds.writeUTF("Hello World");
ds.writeInt(186);
ds.writeBoolean(true);
ds.writeChar('A');
ds.writeDouble(123.45);
ds.writeByte(12);
ds.writeShort(23);
ds.writeLong(456L);
ds.writeFloat(3.14F);
ds.close();
DataInputStream dis = new DataInputStream(new FileInputStream("test.txt"));
System.out.println(dis.readUTF());
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());
System.out.println(dis.readChar());
System.out.println(dis.readDouble());
System.out.println(dis.readByte());
System.out.println(dis.readShort());
System.out.println(dis.readLong());
System.out.println(dis.readFloat());
dis.close();
}
}
上述代码中,我们创建一个数据输出流,并使用 writeXXX() 方法写入一些基本类型数据。然后,我们创建一个数据输入流,并使用 readXXX() 方法读取写入的数据。最后,我们可以看到控制台输出了我们写入的数据。
示例2:将数据流与缓冲区一起使用
我们也可以将数据流与缓冲区一起使用,以提高程序的IO效率。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class DataStreamBufferedDemo {
public static void main(String[] args) throws Exception {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("test1.txt"));
DataOutputStream dos = new DataOutputStream(bos);
dos.writeUTF("Hello World");
dos.writeInt(186);
dos.writeBoolean(true);
dos.writeChar('A');
dos.writeDouble(123.45);
dos.writeByte(12);
dos.writeShort(23);
dos.writeLong(456L);
dos.writeFloat(3.14F);
dos.close();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("test1.txt"));
DataInputStream dis = new DataInputStream(bis);
System.out.println(dis.readUTF());
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());
System.out.println(dis.readChar());
System.out.println(dis.readDouble());
System.out.println(dis.readByte());
System.out.println(dis.readShort());
System.out.println(dis.readLong());
System.out.println(dis.readFloat());
dis.close();
}
}
上述代码中,我们将数据流和缓冲区一起使用,以提高程序的IO效率。我们创建了一个缓冲输出流,并将其传递给数据输出流,随后使用 writeXXX() 方法将数据写入文件。然后,我们使用缓冲输入流和数据输入流,以类似的方式读取数据。
在进行IO操作时,尤其是在读写大文件时,使用缓冲区可以有效地提高读写效率。
以上就是Java流操作之数据流实例代码的详细攻略,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java流操作之数据流实例代码 - Python技术站