码迷,mamicode.com
首页 > 编程语言 > 详细

java学习笔记 处理流之数据流

时间:2016-08-13 19:35:42      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

以前写数据如double类型 3.1415926,写进文件必须把这个Double类型转换成字符串写进去,这样做一是比较麻烦,二是如果数据比较长,那么占用内存空间会很大(实际上一个Double类型在内存中占用64位既8个字节)。

DataOutputStream和DataInputStream类的适用来解决这一问题,可以把这8个字节直接写入内存里面。

DataOutputStream和DataInputStream类都是处理流,既包在管道上的管道。

操作示例

import java.io.*;

public class Test {
    public static void main(String[] args) {
        try {
            File f = new File("e:\\java\\aaa.txt");
            DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));
            String strs[] = {"衬衣","手套","围巾"};
            float  prices[] = {98.3f,30.3f,50.5f};
            int nums[] = {3,2,1};
            for (int i = 0;i < strs.length;i++) {
                dos.writeChars(strs[i]);
                dos.writeChar(‘\t‘);
                dos.writeFloat(prices[i]);
                dos.writeChar(‘\t‘);
                dos.writeInt(nums[i]);
                dos.writeChar(‘\n‘);    
            } 
            dos.close();
            DataInputStream dis = new DataInputStream(new FileInputStream(f));
            char temp[];
            String str;
            Float price = 0f;
            int num = 0;
                    char c;
                    temp = new char[100];
                    for(int j = 0;j < strs.length;j++){
                        int len = 0;
                        while((c = dis.readChar()) != ‘\t‘) {
                            temp[len] = c;
                            len++;
                        }    
                      str = new String(temp ,0,len);
                      //dis.readChar();?
                      price = dis.readFloat();
                      dis.readChar();
                      num = dis.readInt();
                      dis.readChar();
                      System.out.printf("商品名称: %s;价格: %5.2f;数量: %d\n",str,price,num);
              }
              //dis.close();?没有close()方法?
        }catch(IOException e) {
            e.printStackTrace();    
        }    
    }    
}

/*
EOFException io流意外达到文件结尾
*/

java/aaa.txt文件显示如下:

技术分享

运行效果:

技术分享

java学习笔记 处理流之数据流

标签:

原文地址:http://www.cnblogs.com/yhwsy/p/5768639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!