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