Java Java.io.DataOutputStream

Java Java.io.DataOutputStream

数据输出流让应用程序以一种可移植的方式将原始的Java数据类型写入输出流。然后,应用程序可以使用一个数据输入流来读回数据。在讨论这个类的方法之前,让我们先讨论这个类的构造函数。

构造函数: DataOutputStream (OutputStream out)

创建一个新的数据输出流,将数据写到指定的底层输出流。现在让我们在实现 **** 相同的方法之前讨论这个类的重要方法。 ****

方法1: void flush()

冲洗这个数据输出流。

语法

public void flush() throws IOException

注意: 它确实覆盖了FilterOutputStream类中的flush()方法。

抛出的异常: IOException

方法2: size()

返回计数器的当前值,即迄今为止写入该数据输出流的字节数。

语法

public final int size()

返回类型: 写入字段的一个整数值

方法3: write ()

从指定的字节数组的偏移量开始,将len字节写入底层输出流。

语法

void write (byte[] b, int off, int len)

参数

  • byte[]
  • off
  • 字节数组的长度

返回类型: void

方法4 :

语法:

public void write(byte[] b, int off,int len)

注意: 它覆盖了FilterOutputStream类中的write()方法。

参数

  • 数据
  • 数据中的起始偏移量
  • 要写入的字节数

异常: IOException

方法5:void write (int b):

将指定的字节(参数b的低八位)写到底层输出流。

语法

public void write(int b)
throws IOException

返回类型: 虚数

参数: 要写入的字节

方法6: writeBoolean()

将一个布尔值作为一个1字节的值写到底层输出流中。

语法

void writeBoolean (boolean v) 

返回类型: 虚数

参数: 布尔值

方法7: writeBoolean()

语法

public final void writeBoolean(boolean v)
throws IOException ****

参数: 要写入的布尔值。

抛出: IOException

方法8: writeByte()

将一个字节作为一个1字节的值写到底层输出流中。

语法

public final void writeByte(int v)
throws IOException 

参数: 要写入的字节值

抛出的异常: IOException

方法9: writeChar()

将一个char写到底层输出流中,作为一个2字节的值,先写高字节。

语法

public final void writeChar(int v)
throws IOException

参数: 要写入的字符值。

异常 :IOException

方法10: void writeDouble (double v)

使用Double类中的doubleToLongBits方法将double参数转换为long,然后将该long值作为一个8字节的数量写入底层输出流,高字节优先。

语法

public final void writeDouble(double v)
throws IOException

参数: 一个要写入的双倍值

抛出的异常: IOException

方法11:writeFloat (float v )

使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为 4 字节数量写入底层输出流,MSB 优先。

语法

public final void writeFloat(float v)
throws IOException

返回类型: 虚数

参数: 要写入的浮点数值。

抛出的异常: IOException

方法12: writeInt()

以四个字节的形式将一个int写入底层输出流,高字节在前。

语法

public final void writeInt(int v)
throws IOException

参数: 一个要写入的int。

返回类型: 虚数

抛出的异常: 将一个int写到底层输出流的四个字节,高字节在前。

方法13: writeLong()

将一个long写入底层输出流中,作为8个字节,高字节在前。

语法:

public final void writeLong(long v)
throws IOException

参数: 要写入的长度。

抛出: IOException

方法14: writeShort()。

以两个字节的形式向底层输出流写入一个短字节,高字节在前。

返回类型: 虚数

参数: 要写入的短数据

语法:

public final void writeShort(int v)
throws IOException

方法15: writeUTF (String str)

以独立于机器的方式,使用修改过的UTF-8编码将一个字符串写入底层输出流。

参数 :要写入的字符串

返回类型 :虚数

抛出的异常: IOException

注意: 有一些重要的点需要记住,如所列。

  • DataOutputStream和DataInputStream经常一起使用。
  • 当一个DataOutputStream被关闭时(通过调用close( )),由out指定的底层流也被自动关闭。
  • 不再有任何明确的close()方法调用。try-with-resources结构处理了这个问题。

例子

// Java Program to Demonstrate DataOutputStream
 
// Importing required classes
import java.io.*;
 
// Main class
// DataOutputStreamDemo
class GFG {
        // Main driver method
        public static void main(String args[]) throws IOException {
                // Try block to check for exceptions
                // Writing the data using DataOutputStream
                try ( DataOutputStream dout =
                                                new DataOutputStream(new FileOutputStream("file.dat")) ) {
                        dout.writeDouble(1.1);
                        dout.writeInt(55);
                        dout.writeBoolean(true);
                        dout.writeChar('4');
                }
 
                catch (FileNotFoundException ex) {
                        System.out.println("Cannot Open the Output File");
                        return;
                }
 
                // Reading the data back using DataInputStream
                try ( DataInputStream din =
                                                new DataInputStream(new FileInputStream("file.dat")) ) {
                        double a = din.readDouble();
                        int b = din.readInt();
 
                        boolean c = din.readBoolean();
                        char d = din.readChar();
 
                        System.out.println("Values: " + a + " " + b + " " + c + " " + d);
                }
 
                // Catch block to handle FileNotFoundException
                catch (FileNotFoundException e) {
                        System.out.println("Cannot Open the Input File");
                        return;
                }
        }
}

输出

Values: 1.1 55 true 4

注意: 上述程序使用try-with-resources,因此需要JDK 7或更高版本。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程