JAVA基本輸入輸出流的幾種用法(3)——以簡單商品管理系統爲例

JAVA基本輸入輸出流的幾種用法(3)——以簡單商品管理系統爲例

DataOutputStream與DataInputStream的使用

package Commodity_System;

import java.io.*;
import java.lang.String;
import java.util.ArrayList;


/*
 * 先用DataOutputStream往文件寫入商品信息
 * 再用DataInputStream從文件讀入商品信息
 * 處理後用DataOutputStream輸出總價
 */
public class Commodity5 {
	public static void main(String args[])throws IOException{
		String[] Name0 = new String[]{"aaa","bbb","ccc","ddd","eee","fff"};
		String[] Price0 = new String[]{"9.99","19.99","29.99","49.99","99.99","199.99"};
		String[] Number0 = new String[]{"10","15","45","24","7","51"};
		int len0 = Name0.length;
		
		DataOutputStream outp = new DataOutputStream(new FileOutputStream("Commodity.txt"));
		//使用DataOutputStream能正常寫入,但會出現亂碼
		int i = 0;
		for(i=0;i<len0;i++){
			outp.writeBytes(Name0[i] + " ");
			outp.writeBytes(Price0[i] + " ");
			outp.writeBytes(Number0[i]);
			if(i != len0 - 1) outp.write(new byte[]{13,10}); //換行
		}
		outp.close();
		
		DataInputStream inp = new DataInputStream(new FileInputStream("Commodity.txt"));
		BufferedReader d = new BufferedReader(new InputStreamReader(inp));
		
		ArrayList<String> Name = new ArrayList<String>();
		ArrayList<Double> Price = new ArrayList<Double>();
		ArrayList<Integer> Number = new ArrayList<Integer>();
		//注意:ArrayList類只支持對象類型,不支持 基礎數據類型。
		//就是說ArrayList對象只能存放對象,不能存放基礎數據類型的數據。
		
		String line;
		while((line = d.readLine()) != null){
			String[] tokens = line.split(" ");
			Name.add(tokens[0]);
			Price.add(Double.parseDouble(tokens[1]));
			Number.add(Integer.parseInt(tokens[2]));
		}
		inp.close();
		
		double cost = 0;
		int len = Name.size();
		for(i=0;i<len;i++){
			cost += Price.get(i) * Number.get(i);
		}
		String cost1 = String.valueOf(cost);
		
		DataOutputStream outp2 = new DataOutputStream(new FileOutputStream("Result.txt"));
		outp2.writeBytes(cost1);
		outp2.close();
	}
}

Commodity.txt

aaa 9.99 10
bbb 19.99 15
ccc 29.99 45
ddd 49.99 24
eee 99.99 7
fff 199.99 51

Result.txt

13848.48
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章