Java IO流 DataOutputStream、DataInputStream的基本使用


            DataOutputStream、DataInputStream的基本使用

  DataInputStream數據輸入流允許應用程序以獨立於機器的方式從底層輸入流讀取原始Java數據類型。應用程序使用數據輸出流來寫入稍后可以被數據輸入流讀取的數據。DataInputStream對於多線程訪問來說不一定是安全的。 線程安全是可選的,由程序員自行選擇。

  DataOutputStream數據輸出流使應用程序以便攜式方式將原始Java數據類型寫入輸出流。然后應用程序可以使用數據輸入流來讀取數據。以下例子是DataOutputStream和DataInputStream的簡單使用。首先是通過數據輸出流DataOutputStream在指定文件寫入數據,然后再通過DataInputStream進行讀取。FileInputStream的使用可參考https://www.cnblogs.com/jhtian/p/14110083.html

測試代碼:

package com.tianjh.io.outputstream;

import java.io.*;

/**
 * Created on 2020/12/10
 * A data output stream lets an application write primitive Java data
 * types to an output stream in a portable way. An application can
 * then use a data input stream to read the data back in.
 *
 * 數據輸出流使應用程序以便攜式方式將原始Java數據類型寫入輸出流。
 * 然后應用程序可以使用數據輸入流來讀取數據。
 * 
 */
public class DataOutputStreamDemo {
    public static void main(String[] args) {
        try {
            String  sourceFile = "D:/data.txt";

            /*
             * $DataOutputStream
             * A data output stream lets an application write primitive Java data
             * types to an output stream in a portable way. An application can
             * then use a data input stream to read the data back in.
             *
             * 數據輸出流使應用程序以便攜式方式將原始Java數據類型寫入輸出流,
             * 然后應用程序可以使用數據輸入流來讀取數據。
             */
            // 1.使用DataOutputStream數據輸出流寫入數據到指定文件中
            FileOutputStream fos = new FileOutputStream(sourceFile);
            DataOutputStream dos = new DataOutputStream(fos);

            // writeInt 寫入int類型
            dos.writeInt(123);

            // writeDouble 寫入Double 類型
            dos.writeDouble(4.56);

            // writeUTF 使用 modified UTF-8編碼以機器無關的方式將字符串寫入基礎輸出流。
            dos.writeUTF("hello");
            dos.close();
            fos.close();

            /*
             * $DataInputStream
             * A data input stream lets an application read primitive Java data
             * types from an underlying input stream in a machine-independent
             * way. An application uses a data output stream to write data that
             * can later be read by a data input stream.
             * <p>
             * DataInputStream is not necessarily safe for multithreaded access.
             * Thread safety is optional and is the responsibility of users of
             * methods in this class.
             *
             * 數據輸入流允許應用程序以獨立於機器的方式從底層輸入流讀取原始Java數據類型。
             * 應用程序使用數據輸出流來寫入稍后可以被數據輸入流讀取的數據。
             * DataInputStream對於多線程訪問來說不一定是安全的。 線程安全是可選的,由程序員自行選擇
             */
            // 2.使用DataInputStream數據輸入流從指定文件讀取數據
            FileInputStream fis = new FileInputStream(sourceFile);
            DataInputStream dis = new DataInputStream(fis);

            System.out.println(dis.readInt());
            // expected output: 123
            System.out.println(dis.readDouble());
            // expected output: 4.56
            System.out.println(dis.readUTF());
            // expected output: hello
            dis.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述列子輸出結果為:

  123
  4.56
  hello

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM