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