java 文件操作 写入和读取(小结一)

参考了这篇博客并优化,谢谢:http://blog.sina.com.cn/s/blog_99201d890101b4le.html

功能:  实现通过两个类完成先写入文件,再读取数据计算显示

package com.swust;
import java.io.*;
/*
 * 数据流包括DataInputStream、DataOutputStream类,
 * 两个类的实例化完成流的操作
 */
public class flowTest {
 
    public static void main(String[] args)throws IOException  {
        // TODO Auto-generated method stub
        String username = "1";
          String path = "C:/test/" + username;
          String inforTxt = "msg.db";
          String newPath=path+inforTxt;
          FileOutputStream fileOut = new FileOutputStream(newPath);
          DataOutputStream out = new DataOutputStream(fileOut);
          //定义要保存的数据数组
          double[] prices={19.90,12.56,18.90,14.99,20.00};//长度5
          int[] amount={3,4,5,6,7,8};
          String[] descs={"java ee","java se","oracle","sqlserver","android"};
          //将prices,amount及descs中的数据以Tab键为分割保存到文件中。
          for(int i=0;i<5;i++){
               out.writeDouble(prices[i]);
               out.writeChar('\t');
               
               out.writeInt(amount[i]);
               out.writeChar('\t');
               
               out.writeUTF(descs[i]);
               out.writeChar('\t');
          }
          out.close();
          
          //创建的数据输入流,将上面保存的文件再次打开并读取
          FileInputStream fileIn = new FileInputStream(newPath);
          DataInputStream in=new DataInputStream(fileIn);
             double price;
             int amnt;
             String desc;
             double total=0.0;
             for(int i=0;i<5;i++){
                  price=in.readDouble();
                  in.readChar();//扔掉tab
                  amnt=in.readInt();
                  in.readChar();
                  desc=in.readUTF();
                  in.readChar();
                  System.out.println("你订购了 "+amnt+"件 "+desc+",价格为 "+price);
                  total=total+amnt*price;
             }
             System.out.println("共计金额:"+total+"元");
             in.close();
    }
    

}

运行效果:

你订购了 3件 java ee,价格为 19.9
你订购了 4件 java se,价格为 12.56
你订购了 5件 oracle,价格为 18.9
你订购了 6件 sqlserver,价格为 14.99
你订购了 7件 android,价格为 20.0
共计金额:434.38元

posted @ 2015-08-13 22:17  平常心,平常心  阅读(566)  评论(0编辑  收藏  举报