void writeBoolean(boolean v)
將一個 boolean 值以 1-byte 值形式寫入基礎輸出流。
void writeByte(int v)
將一個 byte 值以 1-byte 值形式寫出到基礎輸出流中。
void writeBytes(String s)
將字符串按字節順序寫出到基礎輸出流中。
void writeChar(int v)
將一個 char 值以 2-byte 值形式寫入基礎輸出流中,先寫入高字節。
void writeChars(String s)
將字符串按字符順序寫入基礎輸出流。
void writeDouble(double v)
使用 Double 類中的 doubleToLongBits 方法將 double 參數轉換爲一個 long 值,然後將該 long 值以 8-byte 值形式寫入基礎輸出流中,先寫入高字節。
void writeFloat(float v)
使用 Float 類中的 floatToIntBits 方法將 float 參數轉換爲一個 int 值,然後將該 int 值以 4-byte 值形式寫入基礎輸出流中,先寫入高字節。
void writeInt(int v)
將一個 int 值以 4-byte 值形式寫入基礎輸出流中,先寫入高字節。
void writeLong(long v)
將一個 long 值以 8-byte 值形式寫入基礎輸出流中,先寫入高字節。
void writeShort(int v)
將一個 short 值以 2-byte 值形式寫入基礎輸出流中,先寫入高字節。
void writeUTF(String str)
以與機器無關方式使用 UTF-8 修改版編碼將一個字符串寫入基礎輸出流。
看看這些資料你應該能明白,DataOutputStream是一種格式化的數據輸出方式而並非都是字符流
如果寫到文件中他的數據格式 就和在內存中一樣 這樣他讀出來是會很方便
但文本打開的是字符編碼的 你想想 int long 的數據肯定不是字符編碼的 那肯定是亂碼了
UTFString 可以正確顯示就說明 UTF-8的字符是可以正常顯示 編碼是對的
用 16進制編輯器打開(UtralEdit)
你就可以看到 true 寫進去的值是 01
a寫進去是 61 40
FileReader BufferedReader
FileWriter BufferedWriter
將數轉換爲字符串 然後寫入 讀出來時讀字符串再轉換成數
用DataOutputStream 輸出的數據並不是爲了用記事本打開看的而是爲了儲存數據的 一般來保存爲
.dat文件區別開文本本件