Java中的Java.io.DataOutputStream

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java I/O总结

    Java中的Java.io.DataOutputStream

    数据输出流允许应用程序以便携方式将原始Java数据类型写入输出流。然后应用程序可以使用数据输入流来读取数据。

    构造函数和说明:

    • DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入指定的基础输出流。

    重要方法:

    • void flush():刷新这个数据输出流。
      Syntax :public void flush()
                 throws IOException
      Overrides:
      flush in class FilterOutputStream
      Throws:
      IOException
    • int size():返回写入的计数器的当前值,即写入该数据输出流的字节数。
      Syntax :public final int size()
      Returns:
      the value of the written field.
    • void write(byte [] b,int off,int len):将指定字节数组中的len个字节从偏移量off开始写入底层输出流。
      Syntax :public void write(byte[] b,
               int off,
               int len)
                 throws IOException
      Overrides:
      write in class FilterOutputStream
      Parameters:
      b - the data.
      off - the start offset in the data.
      len - the number of bytes to write.
      Throws:
      IOException
    • void write(int b):将指定的字节(参数b的低8位)写入基础输出流。
      Syntax :public void write(int b)
                 throws IOException
      Overrides:
      write in class FilterOutputStream
      Parameters:
      b - the byte to be written.
      Throws:
      IOException
    • void writeBoolean(boolean v):将一个布尔值作为一个1字节值写入基础输出流。
      Syntax :public final void writeBoolean(boolean v)
                              throws IOException
      Parameters:
      v - a boolean value to be written.
      Throws:
      IOException
    • void writeByte(int v):将一个字节作为1字节值写入基础输出流。
      Syntax :public final void writeByte(int v)
                           throws IOException
      Parameters:
      v - a byte value to be written.
      Throws:
      IOException
    • void writeChar(int v):将一个char作为一个2字节值写入底层输出流,先写入高字节。
      Syntax :public final void writeChar(int v)
                           throws IOException
      Parameters:
      v - a char value to be written.
      Throws:
      IOException
    • void writeDouble(double v):使用Double类中的doubleToLongBits方法将double参数转换为long,然后将该long值作为8字节数量写入基础输出流,高字节优先。
      Syntax :public final void writeDouble(double v)
                             throws IOException
      Parameters:
      v - a double value to be written.
      Throws:
      IOException
    • void writeFloat(float v): 使用Float类中的floatToIntBits方法将float参数转换为int,然后将该int值作为4字节数量(最高位为MSB)写入基础输出流。
      Syntax :public final void writeFloat(float v)
                            throws IOException
      Parameters:
      v - a float value to be written.
      Throws:
      IOException
    • void writeInt(int v):将一个int作为四个字节写入基础输出流,先写高字节。
      Syntax :public final void writeInt(int v)
                          throws IOException
      Parameters:
      v - an int to be written.
      Throws:
      IOException
    • void writeLong(long v):将一个long写入基础输出流,为八个字节,先写高字节。
      Syntax :public final void writeLong(long v)
                           throws IOException
      Parameters:
      v - a long to be written.
      Throws:
      IOException
    • void writeShort(int v):将一个short写入基础输出流作为两个字节,高字节在前。
      Syntax :public final void writeShort(int v)
                            throws IOException
      Parameters:
      v - a short to be written.
      Throws:
      IOException
    • void writeUTF(String str):以与机器无关的方式使用修改的UTF-8编码将字符串写入基础输出流。
      Syntax :public final void writeUTF(String str)
                          throws IOException
      Parameters:
      str - a string to be written.
      Throws:
      IOException

    一些重要方法的实施
    方案:

    //Java program to demonstrate DataOutputStream
    // This program uses try-with-resources. It requires JDK 7 or later.
    
    import java.io.*;
    class DataOutputStreamDemo
    {
    	public static void main(String args[]) throws IOException
    	{
    		//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(FileNotFoundException e)
    		{
    			System.out.println("Cannot Open the Input File");
    			return;
    		}
    	}
    }
    
    

    输出:

    Values: 1.1 55 true 4

    重点:

    • DataOutputStream和DataInputStream经常一起使用。
    • 当关闭DataOutputStream(通过调用close())时,由out指定的基础流也会自动关闭。
    • 不再有明确的close()方法调用。try-with-resources结构会照顾到这一点。
  •   Java I/O总结
  •   本文标题:Java中的Java.io.DataOutputStream - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/4299.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注