import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
public class DataOutputStreamDemo {
public static void main(String args[]) throws Exception { // 所有異常拋出
DataOutputStream dos = null; // 聲明數據輸出流對象
File f = new File("d:" + File.separator + "order.txt"); // 文件的保存路徑
dos = new DataOutputStream(new FileOutputStream(f)); // 實例化數據輸出流對象
String names[] = { "襯衣", "手套", "圍巾" }; // 商品名稱
float prices[] = { 98.3f, 30.3f, 50.5f }; // 商品價格
int nums[] = { 3, 2, 1 }; // 商品數量
for (int i = 0; i < names.length; i++) { // 循環輸出
dos.writeChars(names[i]); // 寫入字符串
dos.writeChar('\t'); // 寫入分隔符
dos.writeFloat(prices[i]); // 寫入價格
dos.writeChar('\t'); // 寫入分隔符
dos.writeInt(nums[i]); // 寫入數量
dos.writeChar('\n'); // 換行
}
dos.close(); // 關閉輸出流
}
};
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
public class DataInputStreamDemo {
public static void main(String args[]) throws Exception { // 所有異常拋出
DataInputStream dis = null; // 聲明數據輸入流對象
File f = new File("d:" + File.separator + "order.txt"); // 文件的保存路徑
dis = new DataInputStream(new FileInputStream(f)); // 實例化數據輸入流對象
String name = null; // 接收名稱
float price = 0.0f; // 接收價格
int num = 0; // 接收數量
char temp[] = null; // 接收商品名稱
int len = 0; // 保存讀取數據的個數
char c = 0; // '\u0000'
try {
while (true) {
temp = new char[200]; // 開闢空間
len = 0;
while ((c = dis.readChar()) != '\t') { // 接收內容
temp[len] = c;
len++; // 讀取長度加1
}
name = new String(temp, 0, len); // 將字符數組變爲String
price = dis.readFloat(); // 讀取價格
dis.readChar(); // 讀取\t
num = dis.readInt(); // 讀取int
dis.readChar(); // 讀取\n
System.out.printf("名稱:%s;價格:%5.2f;數量:%d\n", name, price, num);
}
} catch (Exception e) {
}
dis.close();
}
}
5.2f 表示的是 總共的數字長度爲5位,其中2位表示小數,3位表示整數。
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class TestDataStream {
public static void main(String[] args) {
// 使用DataInputStream,DataOutputStream寫入文件且從文件中讀取數據。
try {
// Data Stream寫到輸入流中
DataOutputStream dos = new DataOutputStream(new FileOutputStream(
"datasteam.txt"));
dos.writeBytes("世界"); //按2字節寫入,都是寫入的低位
dos.writeChars("世界"); // 按照Unicode寫入
// 按照UTF-8寫入(UTF8變長,開頭2字節是由writeUTF函數寫入的長度信息,方便readUTF函數讀取)
dos.writeUTF("世界");
dos.flush();
dos.close();
// Data Stream 讀取
DataInputStream dis = new DataInputStream(new FileInputStream(
"datasteam.txt"));
// 讀取字節
byte[] b = new byte[2];
dis.read(b);
System.out.println(new String(b, 0, 2));
// 讀取字符
char[] c = new char[2];
for (int i = 0; i < 2; i++) {
c[i] = dis.readChar();
}
System.out.println(new String(c, 0, 2));
// 讀取UTF
System.out.println(dis.readUTF());
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class TestDataStream {
public static void main(String[] args) {
// 使用DataInputStream,DataOutputStream寫入文件且從文件中讀取數據。
try {
// Data Stream寫到輸入流中
DataOutputStream dos = new DataOutputStream(new FileOutputStream(
"datasteam.txt"));
dos.write("世界".getBytes()); // 按UTF8編碼(我的系統默認編碼方式)寫入
//dos.write("世界".getBytes("GBK")); //指定其他編碼方式
dos.writeChars("世界"); // 按照Unicode寫入
// 按照UTF-8寫入(UTF8編碼長度可變,開頭2字節是由writeUTF函數寫入的長度信息,方便readUTF函數讀取)
dos.writeUTF("世界");
dos.flush();
dos.close();
// Data Stream 讀取
DataInputStream dis = new DataInputStream(new FileInputStream(
"datasteam.txt"));
// 讀取字節
byte[] b = new byte[6];
dis.read(b);
System.out.println(new String(b, 0, 6));
// 讀取字符
char[] c = new char[2];
for (int i = 0; i < 2; i++) {
c[i] = dis.readChar();
}
System.out.println(new String(c, 0, 2));
// 讀取UTF
System.out.println(dis.readUTF());
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
參考:http://blog.csdn.net/fishwjy/article/details/38092985